S7-1200与S7-200 怎样经过Modbus协议通讯

西门子S7-1200紧凑型plc在其时的商场中有着广泛的运用,由于其性价比高,所以常被用作小型主动化操控设备的操控器,这也使得它常常与Modbus外表(扫描枪、打印机等设备进行通讯。由于没有第三方Modbus外表,这儿就以S7-200作为第三方的外表为例介绍Modbus通讯。

1.操控体系原理


图1:通讯体系原理

2.硬件需求

S7-1200PLC现在有3品种型的CPU:

1)S7-1211CCPU。

2)S7-1212CCPU。

3)S7-1214CCPU。

这三品种型的CPU最多都能够衔接三个串口通讯模版。

本例中运用的PLC硬件为:

1)PM1207电源(6EP1332-1SH71)

2)S7-1214C(6ES7214-1BE30-0XB0)

3)CM1241RS485(6ES7241-1CH30-0XB0)

4)CPU224XP(6ES7214-2AD23-0XB0)

3.软件需求

1)编程软件(6ES7822-0AA0-0YA0)

2)编程软件STEP7MicroWIN;Modbus库软件选项包

4.组态

咱们经过下述的实习操作来介绍如安在中组态S7-1214C和S7-200的Modbus通讯。

4.1S7-1200作Modbus主站,S7-200作Modbus从站

S7-1200作为Modbus主站的配备进程如下:


图2:新建S7-1200项目


图3:新建项目后


图4:切换到项目视图


图5:PLC硬件组态

设置参数如下图:


图6:RS485端口配备

在“TransmitmessageConfiguration”和“ReceiveMessageConfiguration”里坚持默许设置,在“IOAddress/HWidentify”里供认一下“硬件辨认号”为11。

此刻,完毕了硬件的组态,接下来需求编写Modbus通讯程序。

在PLC中编写发送程序。在项目处理视图下双击“Device”—》“Programblock”—》“Addnewblock”在弹出的窗口中挑选“OrganizationsBlock(OB)”,然后在其右边的窗口里挑选“Startup”,去掉“SymbolicAccessOnly”的选项勾。如下图所示:


图7:增加主张OB块


图8:Library

调用后如下图所示:


图9:调用MB_COMM_LOAD块

在调用MB_COMM_LOAD功用块时,都会主动弹出创立相应布景数据块的界面,如下图:


图10:创立布景数据块

按上面的进程在OB1中刺进MB_MASTER功用块如下图:


图11:调用MB_MASTER块


图12:数据区的界说

完毕数据区的界说后,接下来就能够对MB_COMM_LOAD功用块和MB_Master功用块进行参数赋值,赋值的参数见图9和图11。在上面的编程块里需求留意的是,在MB_MASTER功用块中的参数MB_ADDR参数是从站的Modbus的站地址。这儿要读取的从站的站地址为2;对于MODE、DATA_ADDR、DATA_LEN可鄙人表中检查,DATA_PTR寄存发送或接纳到的数据。

表1:MB_MASTERModbus功用表

上面就完毕了程序的编写,对项目进行编译;右击PLC_1项目在弹出的菜单里挑选“CompliesALL”选项,这么就对硬件与软件进行编译,如下图:

图13:编译项目

编译且没有过错后就能够下载程序到PLC中,相同右击PLC_1项目,在弹出的菜单挑选“DownloadtoDevice”。

S7-200作为Modbus从站的配备进程如下:

图14:S7-200Modbus从站编程

在上面调用的是端口0的程序,所以在衔接通讯线时,需求衔接到端口0上,编译并下载项目到S7-200的PLC中。下载后工作PLC。

用DP电缆衔接S7-1200与S7-200。

在线监控S7-200中的程序,并监控变量表,批改VB1000到VB1011的值为1到12(VB1000到VB1011对应的Modbus的地址为40001-40006)。监控到的值如下图所示:

图15:S7-200监控变量值

在线监控S7-1200变量表如下图:

图16:S7-1200监控变量值

4.2S7-200作Modbus主站,S7-1200作Modbus从站

S7-1200作为Modbus从站的配备进程如下:

图17:S7-1200监控变量值

图18:新建项目后

图19:切换到项目视图

图20:PLC硬件组态

设置参数如下图:

图21:RS485端口配备

在“TransmitmessageConfiguration”和“ReceiveMessageConfiguration”里坚持默许设置,在“IOAddress/HWidentify”里供认一下“硬件辨认号”为11。

此刻,完毕了硬件的组态,接下来需求编写Modbus通讯程序。

在PLC中编写发送程序。在项目处理视图下双击“Device”—》“Programblock”—》“Addnewblock”在弹出的窗口中挑选“OrganizationsBlock(OB)”,然后在其右边的窗口里挑选“Startup”,去掉“SymbolicAccessOnly”的选项勾。如下图所示:

图22:增加主张OB块

图23:Library

调用后如下图所示:

图24:调用MB_COMM_LOAD块

在调用MB_COMM_LOAD功用块时,都会主动弹出创立相应布景数据块的界面,如下图:

图25:创立布景数据块

按上面的进程在OB1中刺进MB_Slave功用块如下图:

图26:调用MB_Slave块

27:数据区的界说

完毕数据区的界说后,接下来就能够对MB_COMM_LOAD功用块和MB_SLAVE功用块进行参数赋值,赋值的参数见图24和图26。在上面的编程块里需求留意的是,在MB_SLAVE功用块中的参数MB_ADDR参数是此从站的Modbus站地址。这儿界说为此从站的站地址为2;MB_HOLD_REG是指向Modbus坚持寄存器DB的指针。坚持寄存器DB有必要为典型的大局DB。MB_SLAVE所供应给主站的功用见下表:

表3:MB_SLAVEModbus功用表A

表4:MB_SLAVEModbus功用表B

上面就完毕了程序的编写,对项目进行编译;右击PLC_1项目在弹出的菜单里挑选“CompliesALL”选项,这么就对硬件与软件进行编译,如下图:

图28:编译项目

编译且没有过错后就能够下载程序到PLC中,相同右击PLC_1项目,在弹出的菜单挑选“DownloadtoDevice”。

S7-200作为Modbus主站的配备进程如下:

图29:S7-200Modbus主站编程

在上面调用的是端口0的程序,所以在衔接通讯线时,需求衔接到端口0上,编译并下载项目到S7-200的PLC中。下载后工作PLC。

用DP电缆衔接S7-1200与S7-200。

在线监控S7-1200中的程序,并监控变量表,批改到的值为1到21(到对应的Modbus的地址为40001-40010)。监控到的值如下图所示:

图30:S7-1200监控变量值

在线监控S7-200变量表如下图:

图31:S7-1200监控变量值

从上面的变量监控表里能够看到VB420中没有数据,由于在主站的S7-200里的程序里只读取10个变量(即40001-40010)对应着的VB400-VB419,所以VB420的数据没有接纳。

结束!!!

免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系