所用PLC:松下FP0-C16T,被調整數據:16個,PLC內部掉電保持寄存器數目:10個『8個數據寄存器(DT1652-DT1659:8個各16Bit)和2個字的內部繼電器(WR61、WR62:2個各16Bit)』。如果按常規的一個被調整數據占用一個數據寄存器的方法,這顯然不能調整16個被調整數據,而只能調整10個被調整數據。為此,本人專門分析了16個被調整數據的數據調整范圍,發現多數數據的調整范圍只需要從0~255,即0~28-1;而掉電保持數據寄存器DT1652等內部的數據大小為216-1,即256×256-1;所以我們可以將一個被調整的數據只用到數據寄存器的低8位,那么該數據寄存器的高8位就可以來存儲另一個被調整數據。
下面就列出該部分的程序:
1、開機時,分開掉電保持寄存器中高8位和低8位至另外兩個數據寄存器:
其中,R9013是松下FP0系列PLC內部所規定的、在PLC從program狀態到run狀態時只動作一個PLC掃描周期的脈沖繼電器。
指令F65是一個字與指令,它的作用就是將掉電保持數據寄存器DT1655內的數據與十六進制數FF進行字與,然后將結果送到一般數據寄存器DT0,這樣就可以分離出掉電保持數據寄存器DT1655內數據的低8位;同樣第二行的字與指令可以分離出掉電保持數據寄存器DT1655內數據的高8位。
指令F120是一個不帶進位右移指令,即:對數據字進行右移時,對高位進行補零。K8表示右移8位。
指令F0是一個字傳送指令,就是將一般數據寄存器DT10內的數據傳送到一般數據寄存器DT1。
上述程序段的目的就是在開機時將掉電保持數據寄存器DT1655內的數據分成兩個被調整數據。
2、開機之后,將另外兩個數據寄存器的數據合并至掉電保持寄存器的高8位和低8位:
R9014是松下FP0系列PLC內部所規定的、在PLC從program狀態到run狀態時、第二個PLC掃描周期開始動作的脈沖繼電器。
指令F121是一個不帶進位左移指令,K8即左移8位。
指令F66是一個字或指令,將一般數據寄存器DT20內的數據與一般數據寄存器DT0內的數據進行字或,結果送掉電保持寄存器DT1655。
由上可以看出,在PLC運行的時候,可以任意改變一般數據寄存器DT0和DT1中的數據,而這些改變也同時送到了掉電保持寄存器DT1655,這樣,當PLC掉電時,所被調整的數據也就被保存了。
通過同樣的方法,我們可以視被調整數據的大小,靈活的使用掉電保持寄存器的每一個Bit位,從而使我們在不增加成本的情況下,提高小型PLC控制系統的性能。
看不出來DT10 和DT20,怎么鏈接