控制方案4-用移位指令實(shí)現(xiàn)
;;; 要用移位指令實(shí)現(xiàn)兩臺(tái)電動(dòng)機(jī)的單按鈕啟/??刂疲琄1007-01需首先設(shè)置一個(gè)控制字,然后用控制字的最低兩位分別控制兩臺(tái)電動(dòng)機(jī),每按動(dòng)一次操作按鈕,控制字向右移動(dòng)兩位。第1次操作時(shí)控制字的最低兩位應(yīng)變?yōu)镺l;第2次操作時(shí)控制字的最低兩位應(yīng)變?yōu)?0;第3次操作時(shí)控制字的最低兩位應(yīng)變?yōu)?0。因此可推得控制字的初始值為xxxx xxxx 0010 0lxx(二進(jìn)制),其中的x表示既可以為0,也可以為1。但是,為實(shí)現(xiàn)循環(huán)操作,用0來替換初始值中的x,當(dāng)操作一個(gè)循環(huán)以后,控制字就會(huì)變?yōu)镺,可方便進(jìn)行判斷。一旦控制字變?yōu)?,應(yīng)用數(shù)據(jù)傳送指令重新對(duì)控制字賦初值。控制字的初值為W#16#24。;;;;;;;;;;
;;;;;另外,由于PLC采用順序循環(huán)掃描的方式來執(zhí)行OB1的每條指令,如果在OB1或OB1的子程序(如FC,F(xiàn)B)中用傳送指令第一次為控制字設(shè)置初值,必將導(dǎo)致每個(gè)掃描周期都會(huì)進(jìn)行一次賦值操作,無法實(shí)現(xiàn)控制字的3次移位。解決的辦法就是將控制字的第一次賦值指令放置在啟動(dòng)組織塊OB100中,由于OB100只有在PLC重新啟動(dòng)時(shí)執(zhí)行一次,以后CPU不再掃描OB100的指令,可以避免對(duì)控制字的反復(fù)賦值。
;;; 方案4的控制程序如圖4-6和圖4-7所示。
;;; ;FC4:用移位指令實(shí)現(xiàn);;;;;;;;;;;;;;;;;