關(guān)于200PLC的modbus通訊程序
劉玉蓉
發(fā)布于2014-12-10 17:31
364
0
標(biāo)簽:
下面截圖的程序,要表達(dá)的控制思想是,只有當(dāng)VW0的大小狀態(tài)發(fā)生改變時(shí),才會(huì)寫(xiě)操作一次??刂频慕Y(jié)果是,我用Modsim查看,確實(shí)是這樣的,當(dāng)我30001由原來(lái)的16#8C,變?yōu)?6#00時(shí),才會(huì)寫(xiě)一次,如果30001一直為16#8C的話(huà),將只寫(xiě)一次,還有都是讀操作。這是我想要的結(jié)果,只有在有需要時(shí)才寫(xiě)
但是我發(fā)現(xiàn)QB0的Q0.1和Q0.2會(huì)輸出,說(shuō)明錯(cuò)誤位有錯(cuò)誤啊,但是說(shuō)明錯(cuò)誤,我也看不出來(lái)啊
圖片說(shuō)明: 1,1 2,3 3,5 4,4 5,modsim監(jiān)控狀態(tài) 6,2
佳答案
1、QB0的Q0.1和Q0.2會(huì)輸出:
Q0.1和Q0.2都有輸出,即為6(二進(jìn)制0000 0110),6號(hào)錯(cuò)誤表示 Modbus正在忙于其它請(qǐng)求 。
2、常見(jiàn)的錯(cuò)誤:如果多個(gè) MBUS_MSG 指令同時(shí)使能(激活)會(huì)造成 6 號(hào)錯(cuò)誤 。一次只能激活一條MBUS_MSG指令 。即,如果有多個(gè) MBUS_MSG 指令不要同時(shí)都被使能,要一個(gè)一個(gè)地輪詢(xún)。
3、Error 錯(cuò)誤代碼: 只有在 Done 位為1時(shí),錯(cuò)誤代碼才有效 :
0 = 無(wú)錯(cuò)誤
1 = 響應(yīng)校驗(yàn)錯(cuò)誤
2 = 未用
3 = 接收超時(shí)(從站無(wú)響應(yīng))
4 = 請(qǐng)求參數(shù)錯(cuò)誤(slave address, Modbus address, count, RW)
5 = Modbus/自由口未使能
6 = Modbus正在忙于其它請(qǐng)求
7 = 響應(yīng)錯(cuò)誤(響應(yīng)不是請(qǐng)求的操作)
8 = 響應(yīng)CRC校驗(yàn)和錯(cuò)誤
101 = 從站不支持請(qǐng)求的功能
102 = 從站不支持?jǐn)?shù)據(jù)地址
103 = 從站不支持此種數(shù)據(jù)類(lèi)型
104 = 從站設(shè)備故障
105 = 從站接受了信息,但是響應(yīng)被延遲
106 = 從站忙,拒絕了該信息
107 = 從站拒絕了信息
108 = 從站存儲(chǔ)器奇偶錯(cuò)誤