1、打開STEP 7-MicroWINSMART編程軟件
2、給SMB30賦值16#09,即定義通信協議為自由口模式,無校驗、波特率9600bit/s、8個數據位。
3、定義接收條件SMB87=16#E0:即允許接收、使用起始符、使用結束符。
4、設定起始符SMB88=16#AB,設定結束符SMB89=16#BA。
5、設定接收最大字符數SMB94=10
6、定義接收數據區從VB100開始,發送數據區從VB0開始
7、使用中斷子程序來循環接收與發送。
8、主程序如下:
9、中斷子程序INT0,延時50ms進入中斷子程序INT2
10、中斷子程序INT2:執行發送指令發送數據
11、中斷子程序INT1:發送完成進行等待接收同時分離延時中斷事件號。
注意:在使用中斷子程序執行接收與發送指令時,由于中斷的反應速度太快,所以在接收完成后延時一段時間(50ms或100ms)再執行發送指令。
二、定義三菱FX2N的通信格式
1、打開GX Works2編程軟件。
2、定義通信格式D8120=H0F81,即8個數據位、無校驗、1個停止位、波特率9600bit/s、有起始符、有結束符、無順序RS-485接口。
3、設定起始符D8124=16#AB,結束符D8125=16#BA。
4、設定接收超時時間D8129=50(時基10ms)。
5、設定接收/發送數據為8位處理模式,在默認情況下為16位處理模式,若D8161為ON則為8位處理模式(低8位)。
6、使用——[RS S m D n] 指令定義發送、接收數據起始地址及數據長度。S為發送數據起始地址;m為發送數據長度;D為接收數據起始地址;n為接收數據長度。
注意:發送/接收數據緩沖區都不包含起始符與結束符,若只接收無發送則,m=0;若只發送不接收,則n=0。
7、發送請求位M8122,即每接通(沿觸發)一次M8122執行一次發送命令,且該位在發送完成后會自動復位。
8、接收完成標志位M8123,即每次接收完成該位都會接通,該位處于接通狀態則無法接收新數據,且該位不會自動復位需手動復位,可用M8123的觸點作為條件復位M8123的線圈狀態,這樣在接收完成后相當于自動復位M8123。
注意:三菱→西門子:雖然發送數據緩沖區中的數據不包含起始符與結束符,但是,D8124(起始符)與D8125(結束符)中的數據也會一起被發送給對方,也就是西門子PLC接收到的數據中包含有起始符與結束符。如RS指令中設定發送的字節數為3個,那么西門子PLC接收緩沖區定義的接收字節數應為5個,其中第一個字節為起始符最后一個字節為結束符。
西門子→三菱:三菱的接收數據緩沖區也如此,若啟用起始符與結束符,則在西門子PLC的發送數據緩沖區中第一個字節為起始符最后一個字節為結束符,那么FX2N的接收數據緩沖區中也不包含起始符與結束符(起始符與結束符通過D8124、D8125設定),也就是RS指令中設定的起始字節接收到的是西門子PLC發送數據的第二個字節。如西門子PLC發送5個字節數據,那么FX2N只需接收3個字節即可。
9、程序如下:
-
FX2N
+關注
關注
1文章
76瀏覽量
12849 -
西門子S7-200
+關注
關注
1文章
18瀏覽量
7841
原文標題:西門子S7-200smart與三菱FX2N自由口通信
文章出處:【微信號:GKYXT1508,微信公眾號:工控云學堂】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論