理论教育 S7-200SMARTPLC与S7-1200PLC之间的Modbus通信优化指南

S7-200SMARTPLC与S7-1200PLC之间的Modbus通信优化指南

时间:2023-06-27 理论教育 版权反馈
【摘要】:S7-200 SMART PLC与S7-1200 PLC之间的Modbus通信,S7-200 SMART PLC的程序编写的方法与前述的Modbus通信的编程方法相似。与STEP7-Micro/WIN SMART V1.0一样,S7-1200 PLC的编译软件STEP7 Basic V11中也有Modbus库,使用方法也有类似之处,以下用一个例子介绍S7-200 SMART PLC与S7-1200 PLC之间的Modbus通信。图6-74 创建新工程硬件组态熟悉S7-200 PLC的读者都知道,S7-200 PLC是不需要硬件组态的,但S7-1200 PLC需要硬件组态,哪怕只用一台CPU也是如此。

S7-200SMARTPLC与S7-1200PLC之间的Modbus通信优化指南

S7-200 SMART PLC与S7-1200 PLC之间的Modbus通信,S7-200 SMART PLC的程序编写的方法与前述的Modbus通信的编程方法相似。与STEP7-Micro/WIN SMART V1.0一样,S7-1200 PLC的编译软件STEP7 Basic V11中也有Modbus库,使用方法也有类似之处,以下用一个例子介绍S7-200 SMART PLC与S7-1200 PLC之间的Modbus通信。

【例6-10】有一台S7-1200 PLC为Modbus主站,另有一台CPU 226CN为从站,要将主站上的两个字(WORD),传送到从站VW0和VW1中,请编写相关程序。

【解】

1.主要软硬件配置

1)1套STEP7-Micro/WIN SMART V1.0和1套STEP7 Basic V11。

2)1根一根网线。

3)1台CPU ST40。

4)1台CPU 1214C。

5)1台CM 1241(RS-485)。

6)1根PROFIBUS网络电缆(含两个网络总线连接器)。

Modbus现场总线硬件配置如图6-73所示。

【关键点】S7-1200只有一个通信口,即PROFINET口,因此要进行Modbus通信就必须配置RS-485模块(如CM1241 RS-485)或者RS-232模块(如CM1241 RS-232),这两个模块都由CPU供电,不需要外接供电电源

978-7-111-43442-9-Chapter06-95.jpg

图6-73 Modbus现场总线硬件配置图

2.S7-1200的硬件组态

(1)创建新项目

首先打开STEP7 Basic V11软件,选中“创建新项目”,再在“项目名称”中输入读者希望的名称,本例为“Modbus”,注意工程名称和保存路径最好都是英文,最后单击“创建”按钮,如图6-74所示。

978-7-111-43442-9-Chapter06-96.jpg

图6-74 创建新工程

(2)硬件组态

熟悉S7-200 PLC的读者都知道,S7-200 PLC是不需要硬件组态的,但S7-1200 PLC需要硬件组态,哪怕只用一台CPU也是如此。先选中“添加新设备”,再双击将要组态的CPU(图中的1处),接着选中101槽位,双击要组态的模块(图中的2处),如图6-75所示。

(3)保存硬件组态

保存硬件组态即完成。

3.相关指令介绍(www.daowen.com)

MB_COMM_LOAD指令的功能是将CM1241模块(RS-485或者RS-232)的端口配置成Modbus通信协议的RTU模式。此指令只在程序运行时执行一次。其主要输入/输出参数见表6-16。

978-7-111-43442-9-Chapter06-97.jpg

图6-75 硬件组态

表6-16 MB_COMM_LOAD指令的参数表

978-7-111-43442-9-Chapter06-98.jpg

MB_MASTER指令的功能是将主站上的CM1241模块(RS-485或者RS-232)的通信口建立与一个或者多个从站的通信。其各主要输入/输出参数见表6-17。

表6-17 MB_MASTER指令的参数表

978-7-111-43442-9-Chapter06-99.jpg

4.编写程序

(1)编写主站的程序

1)首先建立数据块Modbus,并在数据块Modbus中创建数组data,数组的数据类型为字。其中data[0]和data[1]的初始值为16#ffff,如图6-76所示。

978-7-111-43442-9-Chapter06-100.jpg

图6-76 数据块Modbus中的数组data

2)在OB100组织块中编写初始化程序,此程序只在启动时运行一次,如图6-77所示。此程序如果编写在OB1组织块中,则应在EN前加一个首次运行扫描触点

978-7-111-43442-9-Chapter06-101.jpg

图6-77 OB100组织块中的始化程序

3)在OB1组织块中编写主程序,如图6-78所示。此程序的REQ要有上升沿才有效,因此,当M10.1(M10.1是5Hz的方波,设置方法请参考说明书)的上升沿时,主站将数据块“Modbus”中的数组data的两个字发送到从站10中去。具体发送到从站10的V存储区哪个位置要由从站程序决定。

(2)编写从站的程序

从站的程序如图6-79所示。从站每次接收2个字节,即一个字,存放在VW0中。编程时取用即可。

978-7-111-43442-9-Chapter06-102.jpg

图6-78 OB1组织块中的程序

978-7-111-43442-9-Chapter06-103.jpg

图6-79 从站程序

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈