請問(wèn)關(guān)於三菱RS指令的使用
我使用的共兩種架構
a:FX3U+FX3U-485BD
b:FX3UC+FX3U-485ADP-MB
目前我在測試RS指令,我希望當我命令發(fā)出(M800接點(diǎn)動(dòng)作)時(shí),我不希望PLC會(huì )一直持續發(fā)出命令,
所以我在第65step寫(xiě)了當D8122=0的時(shí)候,我把RS指令送出byte數的暫存器D100改為0,讓RS指令
保持再接收的狀態(tài),直到接收到資料後再把M800給OFF掉。
PS:我的RS指令D100為送出byte數,D101開(kāi)始為送出資料內容。D200為接收Byte數,D201為接收資料內容
目前我測試結果,在B方案裡很正常。
我的PLC送出8個(gè)byte的字串01 03 00 00 00 01 84 0A
我在電腦接收端也可以看到01 03 00 00 00 01 84 0A 共八個(gè)字串,且PLC會(huì )停止送出(因為D100被我切
為0,送出byte=0),一直保持在等待資料的狀態(tài)直到我電腦回送字串給PLC,M8123會(huì )on一下,電腦送
出來(lái)的資料會(huì )紀錄到D201裡,然後我的邏輯就會(huì )把M800給off,然後再把送出字串數D100恢復為8,這
樣下次啟動(dòng)M800,RS指令就可以在自動(dòng)送出8個(gè)byte的資料了。
可是我今天改為a方案時(shí),發(fā)生問(wèn)題了。
我一樣PLC命令送出8個(gè)byte的字串01 03 00 00 00 01 84 0A 。我電腦接收端所接收到的會(huì )不只八個(gè)byte
,都還超過(guò)。電腦接收到的下:01 03 00 00 00 01 84 0A 01 03 00 00 00 01 84 0A 01 03 00 00 00 01 84 FF
在我的程式裡明明送出的byte已經(jīng)限定8個(gè)byte,可是不知道為啥卻會(huì )跑那個(gè)多個(gè)。而且更奇怪的是,我
D101開(kāi)始所送出的資料,卻會(huì )被自己D201所接收回來(lái)。在B方案時(shí)都不會(huì )有這種接收到自己資料的問(wèn)題。
因此當然我的M8123也會(huì )自動(dòng)判別接收到資料而off掉M800停止RS指令,造成無(wú)法接收電腦資料。而且因為
送出的字串錯誤,電腦端也無(wú)法解讀。而且像上面電腦接收回來(lái)的例子,最後那個(gè)byte "FF"我也搞不懂從哪
來(lái)的,我明明只送出01 03 00 00 00 01 84 0A 就算重複送也沒(méi)有送FF這個(gè)字串呀。
我想A或B方案對PLC來(lái)說(shuō)485模組應該都是ch1,所以程式應該可以直接使用才對。
目前問(wèn)題,不曉得哪位前輩可以替我解惑呢?我有上傳我目前寫(xiě)得RS的專(zhuān)案,若大家有興趣一起討論也歡迎轉載。