分享

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

 龙之吻6iinxl8c 2019-01-05

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

1.操控体系原理

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


图1:通讯体系原理

2.硬件需求

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

1)S7-1211C CPU。

2)S7-1212C CPU。

3)S7-1214C CPU。

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

本例中运用的PLC硬件为:

1)PM1207电源 ( 6EP1 332-1SH71 )

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

3) CM1241 RS485 ( 6ES7 241 -1CH30 -0XB0 )

4)CPU224XP (6ES7 214-2AD23-0XB0)

3.软件需求

1) 编程软件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0)

2)编程软件 STEP 7 MicroWIN; Modbus库软件选项包

4.组态

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

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

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

点击桌面上的“Totally Integrated Automation Portal V10”图标,翻开如下图:

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


图2: 新建S7 -1200项目

首要需求挑选“Create new project”选项,然后在“Project name:”里输入Modbus_Master;在“Path:”批改项意图存储途径为“C:\”;点击“Create”,这么就创立了一个文件Modbus的新项目。创立后的窗口如下图所示:

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


图3: 新建项目后

点击门户视图左下角的“Project View”切换到项目视图下,如下图:

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


图4: 切换到项目视图

翻开后,在“Devices”标签下,点击“Add new device”,在弹出的菜单中输入设备名“PLC_1”并在设备列表里挑选CPU的类型。挑选后如下图:

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


图5: PLC硬件组态

刺进CPU后,点击CPU左面的空槽,在右边的“Catalog ”里找到“Communication”下的RS485模块,拖拽或双击此模块,这么就把串口模块刺进到硬件配备里,接下来就需求配备此RS485模块硬件接口参数,挑选RS485模块,在其下方会呈现该模块的硬件特征配备窗口, 在特征窗口里有下面五个选项, “general”; “Port Configuration”;“Transmit message Configuration”;“Receive Message Configuration”;“IO Address/HW identify”。在“General”里包含了此模块的“项目信息”;而在“Port Configuration”里能够对端口的进行参数配备,

波特率为:9600 ;校验办法:无 ;数据位为:8 ;接连位: 1;硬件流操控:无;等候时间: 1ms

设置参数如下图:

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


图6: RS485端口配备

在“Transmit message Configuration”和“Receive Message Configuration”里坚持默许设置,在“IO Address/HW identify”里供认一下“硬件辨认号”为11。

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

在PLC中编写发送程序。在项目处理视图下双击“Device”—》“Program block”—》“Add new block”在弹出的窗口中挑选“Organizations Block(OB)”,然后在其右边的窗口里挑选“Startup”,去掉“Symbolic Access Only”的选项勾。如下图所示:

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


图7: 增加主张OB块

点击“OK”后会翻开此OB块,然后在主张OB块里用MB_COMM_LOAD(注:MB_COMM_LOAD和MB_MASTER功用块是在“Project Library”下的“Library”选项卡里,如下图所示:)

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


图8: Library

调用后如下图所示:

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


图9: 调用MB_COMM_LOAD块

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

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


图10:创立布景数据块

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

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


图11:调用MB_MASTER块

在刺进功用块的进程,相应的生成MB_COMM_LOAD_DB和MB_MASTER_DB,两个布景数据块。然后再创立一个发送或接纳的数据缓冲区,点击PLC_1项目下的“Program Block”下的“Add new block”,在弹出的窗口中挑选DB类型为“Global DB”,并去掉“Symbolic access only”选项勾(这么能够对该DB块进行直接地址拜访),并取名该DB块为MB_COMM_DB。建好这个DB块后,双击翻开MB_COMM_DB预先界说数据区的巨细,如下图所示:

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


图12:数据区的界说

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

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


表1:MB_MASTER Modbus功用表

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

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


图13:编译项目

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

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

点击桌面上的“V4.0 STEP 7 MicroWIN SP6”图标(由于STEP 7 MicroWIN设备时并没有设备Modbus的库程序,所以Modbus的库程序是需求独自设备的,设备后才干够在库程序中调用Modbus的通讯功用块,对于库程序能够咨询西门子热线或拜访西门子的官方网站),翻开后并编写Modbus从站程序如下图:

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


图14:S7-200 Modbus从站编程

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

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

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

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


图15:S7-200监控变量值

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

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


图16:S7-1200监控变量值

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

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

点击桌面上的“Totally Integrated Automation Portal V10”图标,翻开如下图:

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


图17:S7-1200监控变量值

首要需求挑选“Create new project”选项,然后在“Project name:”里输入Modbus_Slave在“Path:”批改项意图存储途径为“C:\Backup file”;点击“Create”,这么就创立了一个文件Modbus_Slave的新项目。创立后的窗口如下图所示:

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


图18: 新建项目后

点击门户视图左下角的“Project View”切换到项目视图下,如下图:

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


图19:切换到项目视图

翻开后,在“Devices”标签下,点击“Add new device”,在弹出的菜单中输入设备名“PLC_1”并在设备列表里挑选CPU的类型。挑选后如下图:

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


图20: PLC硬件组态

刺进CPU后,点击CPU左面的空槽,在右边的“Catalog ”里找到“Communication”下的RS485模块,拖拽或双击此模块,这么就把串口模块刺进到硬件配备里,接下来就需求配备此RS485模块硬件接口参数,挑选RS485模块,在其下方会呈现该模块的硬件特征配备窗口, 在特征窗口里有下面五个选项, “general”; “Port Configuration”;“Transmit message Configuration”;“Receive Message Configuration”;“IO Address/HW identify”。在“General”里包含了此模块的“项目信息”;而在“Port Configuration”里能够对端口的进行参数配备,

波特率为:9600 ;校验办法:无 ;数据位为:8 ;接连位: 1;硬件流操控:无;等候时间: 1ms

设置参数如下图:

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


图21: RS485端口配备

在“Transmit message Configuration”和“Receive Message Configuration”里坚持默许设置,在“IO Address/HW identify”里供认一下“硬件辨认号”为11。

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

在PLC中编写发送程序。在项目处理视图下双击“Device”—》“Program block”—》“Add new block”在弹出的窗口中挑选“Organizations Block(OB)”,然后在其右边的窗口里挑选“Startup”,去掉“Symbolic Access Only”的选项勾。如下图所示:

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


图22: 增加主张OB块

点击“OK”后会翻开此OB块,然后在主张OB块里用MB_COMM_LOAD(注:MB_COMM_LOAD和MB_Slave功用块是在“Project Library”下的“Library”选项卡里,如下图所示:)

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


图23: Library

调用后如下图所示:

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


图24: 调用MB_COMM_LOAD块

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

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


图25:创立布景数据块

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

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


图26:调用MB_Slave块

在刺进功用块的进程,相应的生成MB_COMM_LOAD_DB和MB_Slave_DB,两个布景数据块。然后再创立一个发送或接纳的数据缓冲区,点击PLC_1项目下的“Program Block”下的“Add new block”,在弹出的窗口中挑选DB类型为“Global DB”,并去掉“Symbolic access only”选项勾(这么能够对该DB块进行直接地址拜访),并取名该DB块为MB_COMM_DB。建好这个DB块后,双击翻开MB_COMM_DB预先界说数据区的巨细,如下图所示:

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


27:数据区的界说

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

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


表3:MB_SLAVE Modbus功用表A

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


表4:MB_SLAVE Modbus功用表B

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

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


图28:编译项目

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

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

点击桌面上的“V4.0 STEP 7 MicroWIN SP6”图标(由于STEP 7 MicroWIN设备时并没有设备Modbus的库程序,所以Modbus的库程序是需求独自设备的,设备后才干够在库程序中调用Modbus的通讯功用块,对于库程序能够咨询西门子热线或拜访西门子的官方网站),翻开后并编写Modbus主站程序如下图:

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


图29:S7-200 Modbus主站编程

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

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

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

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


图30:S7-1200监控变量值

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

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


图31:S7-1200监控变量值

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

结束!!!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多