程序要求:
這個是天塔之光的要求
這個是天塔之光的光圈,注:有些會要求有下面的燈,可以參考 http://www.plc100.com/siemens/shili/tiantazhiguang.htm (該網址程序,部分有問題)。
具體程序:
所想:
天塔之光程序了解之后,我在想,通常寫PLC都是“”定位動值”,而天塔之光卻是一個“動位定值”的程序。
主要點:
SHRB:移位寄存器指令,
其中:
EN: 為使能端;
DATA:需要保存的數據位(bit);
S_BIT:移位寄存器的最低位
N :移位寄存器的長度(bits)
例如:就是當I0.2上升沿的時候,把I0.3的數據(1或0)存入到V100.0里。下一個I0.2的上升沿的時候再把I0.3的數據(1或0)存入到V100.0里,之前存入的數據向高位移動,就是存入到V100.1,因為圖中N為+4所以移位寄存器最高位是V100.3,要是超出了數據會保存在SM1.1(溢出位)中。當N為負值的時候就是高位保存,向低位移位。
從天塔之光 Network2和Network3中可以看出M0.0會每2秒發射一個脈沖信號,使能Network7中的移位寄存器,讓其每2秒將M10.0的值保存在M10.1中。而M10.0和M1.0相同(目前M0.2未起作用)所以就是這樣
第一個使能存入了1后面都存的0。存入的1會被新存入的0不斷“擠”到高位
當1被“擠”到最后,就是M11.6了,此時看Network6,M11.6為1,M0.2也會被置1,兩秒后M0.2因定時器會歸零所以信號如下。注意:因為是在M0.0脈沖之后才會寄存值,所以1移到M11.6會在脈沖之后。
此時又是存入一個1后面都是0,如此循環。1逐個位置移動就代表一個新的一步。
程序不難可是這個程序有點意思,以往我們寫程序就是一個位對應一個燈。這就像是上下對應,上面是燈下面是開關固定死了。但是天塔之光卻是一個開關在不同的位置對應不同的燈,這種動位定值是一種不同想法。當然如果你僅看位的值,那也是定位動值,只是從這個實驗可以更好發散思維,更容易從一個不同的參考系看待問題。
在本例中可以看到。當輸出多與步數,即 Q的總數>N 的時候動位定值會比定位動值要來的簡單。