前面提到因為有套FX3U擴展滿了,就再買了個FX3GA做擴展IO用,買了對應的232BD模塊,搞的時候卡手冊才發現485的模塊才支持并聯鍊接功能,232模塊是不支持的,所以隻有自己用無協議通訊方式來交換IO輸出。
下面就講講編程方式吧,首先是思路,模仿modbusd的方式,3U作為主站對3GA端輪詢,3U發送一次數據,3GA接收到了之後立馬反饋一次,然後3U再次發送,3GA再次反饋,實現數據的不斷刷新。
關系圖如下,
3U端發送接收地址
3GA端發送接收地址
3GA端的作用就是将自身的輸入信号刷新到3U端的M2240開始的地址,然後3U端的M2200開始的地址同了3GA對應的Y0開始地址輸出,不做其他邏輯輸出下面看具體編程
下面是RS232的通訊方式設置,兩邊都是一樣的。波特率是9600,奇校驗,為保障數據準确性,還設置了報頭報位。
RS232參數設置
如下圖,報頭是16進制4141就是AA,報尾是H4242(BB)
下圖是RS指令,兩邊也是一樣的,發送D800,接收D810
下面接收3U和3GA步一樣的地方,首先是3U,作為主站,需要先發送數據到3GA
發送後,正常情況下3GA接收到也會馬上反饋發送一次數據,接收的數據D810存入D820就是3GA側的X輸入狀态。
每次接到到3GA的信号會置位M2102,然後複位M2102,如果M2102斷開超過5S,M2103斷開,表示通訊中斷,MOV K0 K4M2240 ,輸入狀态清零。
我這裡沒有需要确認常閉點的信号,不需要考慮那麼多,如果喲啊使用3GA端的X1常閉點信号的話最好如下使用,而不是單獨用M2241的常閉點,要加上通訊有效标志。
下面的程序是超時及循環發送處理。
通過以上程序實現的是将3GA發送過來的X狀态刷新到M2240開始地址,輸出M2200開始地址刷新到3GA端的Y。
下面看3GA端的編程,通訊方式和報頭報尾都是和3U一樣的,就不講述了。
如下圖,3U端發送之後,3GA端就能收到信号存到D820
然後将X狀态存入D800發送反饋
同樣的,反饋發送一次置位M2001,自鎖M2002,再複位M2001,M2001斷開超過5S,斷開M2002通訊有效标志位,MOV K0 K4Y0,輸出全部清零無效
以上就是FX3U和FX3GA的無協議通訊交換IO信号編程方式。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!