|
一、必備軟件和硬件: 1、三菱GX Works3編程軟件 2、西門子STEP 7-MicroWIN SMART編程軟件 3、Modbus Poll調(diào)試軟件 4、Modbus Slave調(diào)試軟件 5、以太網(wǎng)調(diào)試助手 6、三菱FX5U系列PLC 7、西門子200 Smart系列PLC 8、無線路由器 9、網(wǎng)線 二、通信實(shí)現(xiàn)目的: 1、三菱FX5U讀取西門子200 Smart數(shù)字量輸入I0.0~I0.7并映射到自己的數(shù)字量輸出Y0~Y7上,使用Modbus之02功能碼實(shí)現(xiàn); 2、三菱FX5U使用自己的數(shù)字量輸入X0~X7控制西門子200 Smart數(shù)字量輸出Q0.0~Q0.7,使用Modbus之15功能碼實(shí)現(xiàn); 3、三菱FX5U讀取西門子200 Smart保持寄存器VW0~VW6并保存到自己的保持寄存器D0~D3里,使用Modbus之03功能碼實(shí)現(xiàn); 4、三菱FX5U使用自己的保持寄存器D4~D7控制西門子200 Smart保持寄存器VW8~VW14,使用Modbus之16功能碼實(shí)現(xiàn)。 三、通信連接說明: 1、三菱FX5U本體自帶以太網(wǎng)口通過網(wǎng)線連接至無線路由器LAN接口; 2、西門子200 Smart本體自帶以太網(wǎng)口通過網(wǎng)線連接至無線路由器LAN接口。 四、Modbus TCP服務(wù)器通信參數(shù): 1、Modbus TCP服務(wù)器:西門子200 Smart 2、Modbus TCP服務(wù)器IP地址:192.168.1.150 3、Modbus TPC服務(wù)器子網(wǎng)掩碼:255.255.255.0 4、Modbus TCP服務(wù)器默認(rèn)網(wǎng)關(guān):192.168.1.1 5、Modbus TCP服務(wù)器端口號:502 五、Modbus TCP客戶端通信參數(shù): 1、Modbus TCP客戶端:三菱FX5U 2、Modbus TCP客戶端IP地址:192.168.1.140 3、Modbus TPC客戶端子網(wǎng)掩碼:255.255.255.0 4、Modbus TCP客戶端默認(rèn)網(wǎng)關(guān):192.168.1.1 5、Modbus TCP客戶端端口號:502 六、西門子200 Smart通信參數(shù)設(shè)置: 1、西門子200 Smart通信參數(shù)設(shè)置如下所示: ![]() 2、西門子200 Smart設(shè)備編號和Modbus寄存器編號、地址對應(yīng)表如下所示: ![]() 七、西門子200 Smart實(shí)現(xiàn)Modbus TCP服務(wù)器相關(guān)指令: 1、MBS_Connect指令: ![]() MBS_Connect指令各個(gè)參數(shù)定義如下所示: (1)、EN使能:必須保證每一掃描周期都被使能; (2)、Connect:啟動(dòng)TCP 連接建立操作; (3)、Disconnect: 斷開TCP連接操作; (4)、ConnID: TCP 連接標(biāo)識; (5)、IPaddr1~IPaddr4: Modbus TCP 客戶端的IP地址,IPaddr1 是 IP 地址的最高有效字節(jié),IPaddr4 是 IP 地址的最低有效字節(jié)。如果不指定客戶端IP地址,則可以設(shè)置為0.0.0.0; (6)、LocPort: 本地設(shè)備上端口號; (7)、MaxHold: 用于設(shè)置 Modbus 地址 4xxxx 或 4yyyyy 可訪問的 V 存儲器中的字保持寄存器數(shù); (8)、HoldStart: 間接地址指針,指向CPU 中 V 存儲器中保持寄存器的起始地址; (9)、ConnectDone:Modbus TCP連接已經(jīng)成功建立; (10)、Busy: 連接操作正在進(jìn)行時(shí); (11)、Error: 建立或斷開連接時(shí),發(fā)生錯(cuò)誤; (12)、Status:如果指令置位“Error”輸出,Status輸出會(huì)顯示錯(cuò)誤代碼。 2、MBS_Slave指令: MBS_Slave指令各個(gè)參數(shù)定義如下所示: ![]() (1)、EN使能:必須保證每一掃描周期都被使能; (2)、Done:當(dāng) MB_Server指令響應(yīng)Modbus請求時(shí),Done 完成位在當(dāng)前掃描周期被設(shè)置為 1;如果未處理任何請求,Done完成位為0; (3)、Error:錯(cuò)誤代碼,只有在 Done 位為1時(shí)錯(cuò)誤代碼有效。 八、西門子200 Smart實(shí)現(xiàn)Modbus TCP服務(wù)器編程: 調(diào)用MB_Server0指令庫編制的程序如下所示: ![]() ![]() ![]() ![]() ![]() ![]() 九、以太網(wǎng)調(diào)試助手和西門子200 Smart通信連接: 1、下載程序,并打開程序狀態(tài)監(jiān)控、圖標(biāo)狀態(tài)監(jiān)控,如下所示: ![]() ![]() 表明暫未有Modbus TCP客戶端去連接。 2、使用以太網(wǎng)調(diào)試助手連接西門子200 Smart: 打開以太網(wǎng)調(diào)試助手,如下所示: ![]() 協(xié)議類型選擇“TCP Client”、服務(wù)器IP地址設(shè)置為192.168.1.150、服務(wù)器端口號設(shè)置為502,點(diǎn)擊連接,如下所示: ![]() 表明此時(shí)以太網(wǎng)調(diào)試助手已經(jīng)成功連接到西門子200 Smart。此時(shí)再去監(jiān)控西門子200 Smart程序,如下所示: ![]() ![]() 表明已經(jīng)成功連接。 十、使用以太網(wǎng)調(diào)試助手測試西門子200 Smart之Modbus TCP服務(wù)器程序: 1、Modbus之01功能碼測試,讀取西門子200 Smart之Q0.0~Q0.7狀態(tài): 以太網(wǎng)調(diào)試助手發(fā)送:12 34 00 00 00 06 01 01 00 00 00 08 西門子200 Smart返回:12 34 00 00 00 04 01 01 01 00 返回?cái)?shù)據(jù)為00,表明此時(shí)Q0.0~Q0.7狀態(tài)全為0 以太網(wǎng)調(diào)試收發(fā)數(shù)據(jù)、西門子200 Smart圖表監(jiān)控如下所示,Modbus之01功能碼測試完成: ![]() ![]() 2、Modbus之02功能碼測試,讀取西門子200 Smart之I0.0~I0.7狀態(tài): 以太網(wǎng)調(diào)試助手發(fā)送:22 55 00 00 00 06 01 02 00 00 00 08 西門子200 Smart返回:22 55 00 00 00 04 01 02 01 00 返回?cái)?shù)據(jù)為00,表明此時(shí)I0.0~I0.7狀態(tài)全為0 以太網(wǎng)調(diào)試收發(fā)數(shù)據(jù)、西門子200 Smart圖表監(jiān)控如下所示,Modbus之02功能碼測試完成: ![]() ![]() 3、Modbus之03功能碼測試,讀取西門子200 Smart之VW0~VW6狀態(tài): 以太網(wǎng)調(diào)試助手發(fā)送:33 88 00 00 00 06 01 03 00 00 00 04 西門子200 Smart返回:33 88 00 00 00 0B 01 03 08 00 3C 00 3D 00 3E 00 3F 返回?cái)?shù)據(jù)為依次為00 3A 00 3B 00 3C 00 3D,表明VW0、VW2、VW4、VW6的值依次為16進(jìn)制003C、003D、003E、003F 以太網(wǎng)調(diào)試收發(fā)數(shù)據(jù)、西門子200 Smart圖表監(jiān)控如下所示,Modbus之03功能碼測試完成: ![]() ![]() 4、Modbus之04功能碼測試,讀取西門子200 Smart之AIW0狀態(tài): 以太網(wǎng)調(diào)試助手發(fā)送:44 22 00 00 00 06 01 04 00 00 00 01 西門子200 Smart返回:44 22 00 00 00 05 01 04 02 00 00 返回?cái)?shù)據(jù)為依次為00 00,表明AIW0為16進(jìn)制0000 以太網(wǎng)調(diào)試收發(fā)數(shù)據(jù)、西門子200 Smart圖表監(jiān)控如下所示,Modbus之04功能碼測試完成: ![]() ![]() 5、Modbus之05功能碼測試,將西門子200 Smart之Q0.0置位 以太網(wǎng)調(diào)試助手發(fā)送:87 65 00 00 00 06 01 05 00 00 FF 00 西門子200 Smart返回:87 65 00 00 00 06 01 05 00 00 FF 00 西門子200 Smart原樣返回,Q0.0置位成功 以太網(wǎng)調(diào)試收發(fā)數(shù)據(jù)、西門子200 Smart圖表監(jiān)控如下所示,Modbus之05功能碼測試完成: ![]() ![]() 6、Modbus之06功能碼測試,將西門子200 Smart之VW8數(shù)據(jù)設(shè)置為8 以太網(wǎng)調(diào)試助手發(fā)送:66 23 00 00 00 06 01 06 00 04 00 08 西門子200 Smart返回:66 23 00 00 00 06 01 06 00 04 00 08 西門子200 Smart原樣返回,VW8數(shù)據(jù)設(shè)置成功 以太網(wǎng)調(diào)試收發(fā)數(shù)據(jù)、西門子200 Smart圖表監(jiān)控如下所示,Modbus之06功能碼測試完成: ![]() ![]() 7、Modbus之15功能碼測試,將西門子200 Smart之Q0.0~Q0.7全部置位 以太網(wǎng)調(diào)試助手發(fā)送:11 11 00 00 00 08 01 0F 00 00 00 08 01 FF 西門子200 Smart返回:11 11 00 00 00 06 01 0F 00 00 00 08 西門子200 Smart返回?cái)?shù)據(jù)表明Q0.0~Q0.7置位操作設(shè)置成功 以太網(wǎng)調(diào)試收發(fā)數(shù)據(jù)、西門子200 Smart圖表監(jiān)控如下所示,Modbus之15功能碼測試完成: ![]() ![]() 8、Modbus之16功能碼測試,將西門子200 Smart之VW8~VW14依次設(shè)置為1、2、3、4 以太網(wǎng)調(diào)試助手發(fā)送:EE EE 00 00 00 0F 01 10 00 04 00 04 08 00 01 00 02 00 03 00 04 西門子200 Smart返回:EE EE 00 00 00 06 01 10 00 04 00 04 西門子200 Smart返回?cái)?shù)據(jù)表明VW8~VW14數(shù)據(jù)設(shè)置成功 以太網(wǎng)調(diào)試收發(fā)數(shù)據(jù)、西門子200 Smart圖表監(jiān)控如下所示,Modbus之16功能碼測試完成: ![]() ![]() 9、測試總結(jié): 以上Modbus共計(jì)8個(gè)功能碼測試通過,亦表明西門子200 Smart之Modbus TCP服務(wù)器程序正確無誤。此時(shí)可以斷開以太網(wǎng)調(diào)試助手和西門子200 Smart的通信連接。 十一、三菱FX5U通信參數(shù)設(shè)置: 1、以太網(wǎng)端口自接點(diǎn)設(shè)置,需要設(shè)置IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)、通信數(shù)據(jù)代碼等諸多選型,如下所示: ![]() 2、對象設(shè)備連接配置設(shè)置,拖入一個(gè)Active連接設(shè)備,通信手段選擇“通信協(xié)議”、可編程控制的IP地址設(shè)置為192.168.1.140、可編程控制器端口號設(shè)置為502;傳感器設(shè)備IP地址暫時(shí)設(shè)置為192.168.1.106(此為電腦IP地址,方便測試時(shí)使用以太網(wǎng)調(diào)試助手測試三菱FX5U程序,待測試OK后再修改為西門子200 Smart的IP地址)、傳感器設(shè)備端口號設(shè)置為502,如下所示: ![]() 3、三菱FX5U以太網(wǎng)端口通信協(xié)議支持功能數(shù)據(jù)包建立: 協(xié)議號1,功能碼為02,用來讀取Modbus TCP服務(wù)器多路輸入 協(xié)議號2,功能碼為15,用來寫入Modbus TCP服務(wù)器多路線圈 協(xié)議號3,功能碼為03,用來讀取Modbus TCP服務(wù)器多路保持寄存器 協(xié)議號4,功能碼為16,用來寫入Modbus TCP服務(wù)器多路保持寄存器 ![]() (1)、協(xié)議號1詳細(xì)設(shè)置如下所示: 發(fā)送,占用寄存器D1000~D1003,如下所示: ![]() 正確返回,占用寄存器D1007~D1010,如下所示: ![]() 錯(cuò)誤返回,占用寄存器D1004~D1006,如下所示: ![]() (2)、協(xié)議號2詳細(xì)設(shè)置如下所示: 發(fā)送,占用寄存器D1107~D1112,如下所示: ![]() 正確返回,占用寄存器D1100~D1103,如下所示: ![]() 錯(cuò)誤返回,占用寄存器D1104~D1106,如下所示: ![]() (3)、協(xié)議號3詳細(xì)設(shè)置如下所示: 發(fā)送,占用寄存器D1200~D1203,如下所示: ![]() 正確返回,占用寄存器D1207~D1213,如下所示: ![]() 錯(cuò)誤返回,占用寄存器D1204~D1206,如下所示: ![]() (4)、協(xié)議號4詳細(xì)設(shè)置如下所示: 發(fā)送,占用寄存器D1307~D1315,如下所示: ![]() 正確返回,占用寄存器D1300~D1303,如下所示: ![]() 錯(cuò)誤返回,占用寄存器D1304~D1306,如下所示: ![]() 十二、三菱FX5U實(shí)現(xiàn)Modbus TCP客戶端相關(guān)指令: 1、SP.SOCOPEN指令: 指令格式如下所示 ![]() 指令參數(shù)說明如下所示 ![]() 其中操作數(shù)S2含義如下所示 ![]() ![]() 編程舉例如下所示: ![]() 2、SP.SOCCLOSE指令: 指令格式如下所示: ![]() 指令參數(shù)說明如下所示 ![]() 其中操作數(shù)S2的含義如下所示 ![]() 編程舉例如下所示: ![]() 3、SP.ECPRTCL指令: 指令格式如下所示 ![]() 指令參數(shù)說明如下所示 ![]() 其中操作數(shù)S3的含義如下所示 ![]() ![]() ![]() 十三、三菱FX5U實(shí)現(xiàn)Modbus TCP客戶端編程: 1、初始化部分程序,D0~D3初始化清零、D4~D7初始化分別賦值0~3、每1分鐘給D4~D7做加1操作、當(dāng)D4~D7分別大于6000時(shí)清零,如下所示: ![]() ![]() 2、和Modbus TCP服務(wù)器建立連接部分程序,當(dāng)Modbus TCP服務(wù)器準(zhǔn)備就緒時(shí),置位M100即可和Modbus TCP服務(wù)器建立連接,程序隨即置位M0,即可開始執(zhí)行SP.ECPRTCL指令,如下所示: ![]() 3、和Modbus TCP服務(wù)器斷開連接部分程序,當(dāng)Modbus TCP服務(wù)器斷開連接或者置位M104時(shí),即可執(zhí)行斷開和Modbus TCP服務(wù)器連接的操作,程序隨即復(fù)位M0~M3,終止執(zhí)行SP.ECPRTCL指令,如下所示: ![]() 4、讀取Modbus TPC服務(wù)器8路輸入部分程序,功能碼02,對應(yīng)協(xié)議號1,M0置位后開始執(zhí)行該段程序,讀取的Modbus TCP服務(wù)器8路輸入映射到三菱FX5U的8路數(shù)字量輸出Y0~Y7里,該段程序中的SP.ECPRTCL指令執(zhí)行完成之后復(fù)位M0、置位M1,緊接著去執(zhí)行下一個(gè)SP.ECPRTCL指令,如下所示: ![]() ![]() 5、寫入Modbus TCP服務(wù)器8路線圈部分程序,功能碼15,對應(yīng)協(xié)議號2,M1置位后開始執(zhí)行該段程序,使用三菱FX5U的X0~X7去控制Modbus TCP服務(wù)器8路線圈,該段程序中的SP.ECPRTCL指令執(zhí)行完成之后復(fù)位M1、置位M2,緊接著去執(zhí)行下一個(gè)SP.ECPRTCL指令,如下所示: ![]() 6、讀取Modbus TCP服務(wù)器4路保持寄存器部分程序,功能碼03,對應(yīng)協(xié)議號3,M2置位后開始執(zhí)行該段程序,讀取Modbus TCP服務(wù)器4路保持寄存器后轉(zhuǎn)存到三菱FX5U的D0~D3寄存器中,該段程序中的SP.ECPRTCL指令執(zhí)行完成之后復(fù)位M2、置位M3,緊接著去執(zhí)行下一個(gè)SP.ECPRTCL指令,如下所示: ![]() 7、寫入Modbus TCP服務(wù)器4路保持寄存器部分程序,功能碼16,對應(yīng)協(xié)議號4,M3置位后開始執(zhí)行該段程序,使用三菱FX5U的D4~D7去控制Modbus TCP服務(wù)器4路保持寄存器,該段程序中的SP.ECPRTCL指令執(zhí)行完成之后復(fù)位M3、置位M0,緊接著又去執(zhí)行第一個(gè)SP.ECPRTCL指令,如下所示: ![]() 十四、三菱FX5U和以太網(wǎng)調(diào)試助手通信連接: 1、以太網(wǎng)調(diào)試助手做以太網(wǎng)服務(wù)器的設(shè)置 打開以太網(wǎng)調(diào)試助手,如下所示: ![]() 協(xié)議類型選擇TCP Server、本地IP地址按電腦實(shí)際IP地址設(shè)置為192.168.1.106、本地端口號設(shè)置為502,點(diǎn)擊開始監(jiān)聽,如下所示: ![]() 2、下載三菱FX5U以太網(wǎng)口通信協(xié)議支持功能數(shù)據(jù)包 ![]() 3、下載三菱FX5U程序 ![]() 4、監(jiān)視三菱FX5U程序,如下所示 建立連接程序段;斷開連接程序段: ![]() 以上可以看出連接1開放結(jié)束信號SD10680.0、連接1開發(fā)請求信號SD10681.0均為0,符合建立和Modbus TCP服務(wù)器連接條件,此時(shí)可置位M100建立和以太網(wǎng)調(diào)試助手的連接,如下所示: ![]() 5、以太網(wǎng)調(diào)試助手連接建立,如下所示: ![]() 十五、三菱FX5U之Modbus TCP客戶端程序的監(jiān)視: 三菱FX5U和以太網(wǎng)調(diào)試助手建立連接成功后,以太網(wǎng)調(diào)試助手即可觀察到來自三菱FX5U發(fā)出的Modbus TCP命令,如下所示: ![]() 十六、三菱FX5U和西門子200 Smart通信測試步驟: 1、使用網(wǎng)線將西門子200 Smart連接至無線路由器LAN口、使用網(wǎng)線將三菱FX5U連接至無線路由器LAN口,完成硬件連接,如下所示: ![]() 2、下載西門子200 Smart之Modbus TCP服務(wù)器程序,并打開監(jiān)控,如下所示: ![]() 3、將三菱對象設(shè)備連接配置設(shè)置中連接設(shè)備的IP地址修改為西門子200 Smart的IP地址,如下所示: ![]() 4、重新下載三菱FX5U之Modbus TCP客戶端程序,并打開監(jiān)控,如下所示: ![]() 5、在三菱編程軟件中置位M100,即可建立三菱FX5U和西門子200 Smart的TCP連接,連接建立成功后,三菱FX5U隨即會(huì)發(fā)送有關(guān)02、15、03、16功能碼命令,如下所示: ![]() ![]() 6、Modbus之02功能碼的測試,系統(tǒng)實(shí)現(xiàn)功能是西門子200 Smart的I0.0~I0.7控制三菱FX5U的Y0~Y7,在西門子編程軟件中強(qiáng)制I0.0為1,同時(shí)觀察三菱編程軟件中Y0的狀態(tài),如下所示: ![]() 7、Modbus之15功能碼的測試,系統(tǒng)實(shí)現(xiàn)功能是三菱FX5U的X0~X7控制西門子200 Smart的Q0.0~Q0.7,在三菱編程軟件中強(qiáng)制X1為1,同時(shí)觀察西門子編程軟件中Q0.1的狀態(tài),如下所示: ![]() 8、Modbus之03功能碼的測試,系統(tǒng)實(shí)現(xiàn)功能是三菱FX5U讀取西門子200 Smart的VW0`VW6保存到自己的D0~D3里,監(jiān)視西門子編程軟件中VW0~VW6的值,并監(jiān)視三菱編程軟件中D0~D3的值,如下所示: ![]() 9、Modbus之16功能碼的測試,系統(tǒng)實(shí)現(xiàn)功能是三菱FX5U的D4~D7去控制西門子200 Smart的VW8~VW14,監(jiān)視三菱編程軟件中D4~D7的值,并監(jiān)視西門子編程軟件VW8~VW14的值,如下所示: ![]() 十七、總結(jié): 至此,三菱FX5U(Modbus TCP客戶端)和西門子200 Smart(Modbus TCP服務(wù)器)完美實(shí)現(xiàn)了Modbus TCP以太網(wǎng)通信。 作者簡介: guanyumou:關(guān)普,中華工控網(wǎng)串口通信板塊版主。就職于西安棋影工作室,專注各種組態(tài)軟件、觸摸屏、PLC、單片機(jī)、變頻器、伺服控制器、智能儀表等Modbus TCP以太網(wǎng)通信、Modbus RTU串口通信、Modbus ASCII串口通信和其他協(xié)議通信等! 來源/中華工控網(wǎng) |
|
|