西门子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的数据没有接纳。
结束!!!免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系