河南張先生
努力做事,誠信做人
級別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 673 個
工控威望: 955 點
下載積分: 3187 分
在線時間: 876(小時)
注冊時間: 2009-04-25
最后登錄: 2024-10-28
查看河南張先生的 主題 / 回貼
樓主  發(fā)表于: 2019-06-25 11:01
所用PLC:松下FP0-C16T,被調(diào)整數(shù)據(jù):16個,PLC內(nèi)部掉電保持寄存器數(shù)目:10個『8個數(shù)據(jù)寄存器(DT1652-DT1659:8個各16Bit)和2個字的內(nèi)部繼電器(WR61、WR62:2個各16Bit)』。如果按常規(guī)的一個被調(diào)整數(shù)據(jù)占用一個數(shù)據(jù)寄存器的方法,這顯然不能調(diào)整16個被調(diào)整數(shù)據(jù),而只能調(diào)整10個被調(diào)整數(shù)據(jù)。為此,本人專門分析了16個被調(diào)整數(shù)據(jù)的數(shù)據(jù)調(diào)整范圍,發(fā)現(xiàn)多數(shù)數(shù)據(jù)的調(diào)整范圍只需要從0~255,即0~28-1;而掉電保持?jǐn)?shù)據(jù)寄存器DT1652等內(nèi)部的數(shù)據(jù)大小為216-1,即256×256-1;所以我們可以將一個被調(diào)整的數(shù)據(jù)只用到數(shù)據(jù)寄存器的低8位,那么該數(shù)據(jù)寄存器的高8位就可以來存儲另一個被調(diào)整數(shù)據(jù)。

下面就列出該部分的程序:

1、開機時,分開掉電保持寄存器中高8位和低8位至另外兩個數(shù)據(jù)寄存器:
     其中,R9013是松下FP0系列PLC內(nèi)部所規(guī)定的、在PLC從program狀態(tài)到run狀態(tài)時只動作一個PLC掃描周期的脈沖繼電器。
     指令F65是一個字與指令,它的作用就是將掉電保持?jǐn)?shù)據(jù)寄存器DT1655內(nèi)的數(shù)據(jù)與十六進制數(shù)FF進行字與,然后將結(jié)果送到一般數(shù)據(jù)寄存器DT0,這樣就可以分離出掉電保持?jǐn)?shù)據(jù)寄存器DT1655內(nèi)數(shù)據(jù)的低8位;同樣第二行的字與指令可以分離出掉電保持?jǐn)?shù)據(jù)寄存器DT1655內(nèi)數(shù)據(jù)的高8位。
     指令F120是一個不帶進位右移指令,即:對數(shù)據(jù)字進行右移時,對高位進行補零。K8表示右移8位。
     指令F0是一個字傳送指令,就是將一般數(shù)據(jù)寄存器DT10內(nèi)的數(shù)據(jù)傳送到一般數(shù)據(jù)寄存器DT1。
     上述程序段的目的就是在開機時將掉電保持?jǐn)?shù)據(jù)寄存器DT1655內(nèi)的數(shù)據(jù)分成兩個被調(diào)整數(shù)據(jù)。

2、開機之后,將另外兩個數(shù)據(jù)寄存器的數(shù)據(jù)合并至掉電保持寄存器的高8位和低8位:
    R9014是松下FP0系列PLC內(nèi)部所規(guī)定的、在PLC從program狀態(tài)到run狀態(tài)時、第二個PLC掃描周期開始動作的脈沖繼電器。
    指令F121是一個不帶進位左移指令,K8即左移8位。
    指令F66是一個字或指令,將一般數(shù)據(jù)寄存器DT20內(nèi)的數(shù)據(jù)與一般數(shù)據(jù)寄存器DT0內(nèi)的數(shù)據(jù)進行字或,結(jié)果送掉電保持寄存器DT1655。
由上可以看出,在PLC運行的時候,可以任意改變一般數(shù)據(jù)寄存器DT0和DT1中的數(shù)據(jù),而這些改變也同時送到了掉電保持寄存器DT1655,這樣,當(dāng)PLC掉電時,所被調(diào)整的數(shù)據(jù)也就被保存了。
     通過同樣的方法,我們可以視被調(diào)整數(shù)據(jù)的大小,靈活的使用掉電保持寄存器的每一個Bit位,從而使我們在不增加成本的情況下,提高小型PLC控制系統(tǒng)的性能。


看不出來DT10 和DT20,怎么鏈接