S7-1200 MODBUS TCP 通信多请求处理

这篇具有很好参考价值的文章主要介绍了S7-1200 MODBUS TCP 通信多请求处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

S7-1200 MODBUS TCP 通信多请求处理

单独的客户机连接需要遵循的规则:
1. 每个“MB_CLIENT”连接需要使用一个不同的背景数据块;
2. 每个“MB_CLIENT”连接必须指定一个服务器 IP 地址;
3. 每个“MB_CLIENT”连接必须指定一个唯一的连接 ID;
4. 是否需要唯一的 IP 端口号取决于服务器组态;
5.连接 ID 和背景数据块组合成对,对每个连接来说,组合对都是唯一的。

对于多请求处理,有两种方法:
方法一:如果 TCP 连接充裕,可以建立多个不同的连接发送请求,即每个请求使用一个独立的连接,调用独立的“MB_CLIENT”功能块,具体操作参考“Modbus TCP”部分,链接。
通过不同的连接发送多个请求,“MB_CLIENT”功能块多次调用,但是需要使用不同的背景数据块,不同的 ID 号和不同的端口号。
方法二:通过公共的连接发送多个请求
这个方法适合 CPU 访问一个 Modbus TCP 服务器,但是有多个作业的情况,例如有读也有写,或者读多个区域等。
通过公共的连接发送多个请求,“MB_CLIENT”功能块多次调用,但是需要使用相同的背景数据块,连接 ID 号,IP 地址和端口号,根据需要修改模式、地址、长度、指针等。
在任意时间,只能有一个 MB_CLIENT 请求处于激活状态,在一个请求完成执行后,下一个请求再开始执行,轮循处理。

方法二特例:MODBUS TCP 客户端访问网关后的多个 MODBUS RTU 从站
这个方法适合 CPU 通过 Modbus TCP 转 Modbus RTU 网关,访问网关后多个 Modbus RTU 从站数据。CPU 仅仅和网关建立一个 Modbus TCP 连接,就可以访问多个站的数据。
通过公共的连接发送多个请求,“MB_CLIENT”功能块多次调用,但是需要使用相同的背景数据块,连接 ID 号,IP 地址和端口号。参数“ MB_Unit_ID ” 使用不同的值,根据需要修改模式、地址、长度、指针等。
在任意时间,只能有一个 MB_CLIENT 请求处于激活状态,在一个请求完成执行后,下一个请求再开始执行,轮循处理。

方法二轮循处理的操作

一.软硬件要求
MB_Client 指令的使用要求:软件 V11 SP1 及以上版本,CPU 固件版本 V1.02 及以上版本。
二.测试条件
硬件:CPU 1214C(DC/DC/DC) V4.5 ,电脑(ModSim32 调试软件);
软件:TIA PORTAL STEP 7 V17
实验:S7-1200 作 Modbus TCP 客户机,用功能码 3 对调试软件先进行读取地址 40001 开始的 2 个字,然后用功能码 16 对地址 40003 开始的 2 个字进行写入。
三.组态配置
1. S7-1200 的 IP 地址192.168.1.42,如图 1 所示。
S7-1200 MODBUS TCP 通信多请求处理
图1. IP地址设置

  1. ModSim32 调试软件设置
    服务器采用 ModSim32 软件测试,首先将测试电脑的 IP 地址设置成192.168.1.201,如图 2 所示。
    S7-1200 MODBUS TCP 通信多请求处理
    图 2. 电脑的 IP 地址
    打开 ModSim32 软件,然后通过 “File”>“New”,新建设置 03 地址区、起始地址 40001、长度 4、设备 ID 255 等,如图 3 所示。
    S7-1200 MODBUS TCP 通信多请求处理
    图 3. ModSim32 调试软件的从站设置
    在“Connection”中选择“Modbus/TCP Svr”,设置本地服务器端口号为 502,如图 4 所示。
    S7-1200 MODBUS TCP 通信多请求处理
    图 4. 连接设置

四.S7-1200编程

  1. 新建 FB
    如图 5 所示,新建 FB,命名为 Comm,在静态变量中增加参数。
    S7-1200 MODBUS TCP 通信多请求处理图 5. 设置 FB 参数
    参数含义参见表 1:
    表 1. FB 接口参数含义
    S7-1200 MODBUS TCP 通信多请求处理

  2. 编写轮循功能
    如图 6 所示,例子中使用 SCL 的 CASE OF 方式编写轮询程序,SCL 的 CASE OF 指令编写顺控可以参考链接:文档。
    思路如下:
    步骤 0:等待连接建立,当连接建立则跳转到步骤 1。
    步骤 1:设置读取参数,触发读取,当读取正常后,将读取到的数据存入指定数据区,然后跳转到
    步骤 2,如果故障则跳转到步骤 100。
    步骤 2:设置写入参数,将待写入数据送入指定区域,触发写入,当写入正常后,跳转到步骤 1,
    如果故障则跳转到步骤 100。
    步骤 100:当故障消失,则跳转到步骤 0。
    如果有更多的读写需要,可以建立更多的步骤。
    以下程序的源文件压缩包链接:源文件。将压缩包下载解压缩后,得到文件“Comm.scl”,然后在 TIA Portal 项目中导入即可使用,导入源文件方式参见链接:文档。
    以下例程仅供参考。读者如欲采纳,风险自担。
    S7-1200 MODBUS TCP 通信多请求处理图 6. 例子程序

  3. 在主程序中调用该 FB,如图 7 所示。
    S7-1200 MODBUS TCP 通信多请求处理
    图 7. 调用程序

五.通讯测试
对 FB 背景数据块与 Modsim32 软件进行监视,如图 8 所示。
S7-1200 MODBUS TCP 通信多请求处理图 8. 测试结果
注意:
1.如果需要更多的读写任务可以按照例子自行添加。
2.ModSim32 是做 Modbus RTU 从站以及 Modbus TCP 服务器的测试软件,是第三方软件,可以从网络上下载

方法二特例轮循处理的操作

一.软硬件要求
MB_Client 指令的使用要求:软件 V11 SP1 及以上版本,CPU 固件版本 V1.02 及以上版本。
二.测试条件
硬件:CPU 1214C(DC/DC/DC) V4.5 ,电脑(ModSim32 调试软件);
软件:TIA PORTAL STEP 7 V17
实验:S7-1200 作 Modbus TCP 客户机,用功能码 3 对调试软件先后进行读取 ID 为 1 的 40001 开始的 2 个字以及 ID 为 2 的 40003 开始的 2 个字。
该实验仿真读取 Modbus TCP 转 Modbus RTU 网关后的多个 Modbus RTU 从站数据的功能。
三.组态配置

  1. CPU 硬件组态参考图 1 的设置。
  2. 电脑 IP 地址设置参考图 2 的设置。
  3. ModSim32 通过 “File”>“New”,新建 2 个文件,设置 03 地址区、起始地址 40001、长度 2、设备 ID 分别是 1 和 2,如图 9 所示。然后参考图 4 进行连接设置。
    S7-1200 MODBUS TCP 通信多请求处理 图 9. ModSim32 的设置

四.编程
5. 新建 FB
如图 10 所示,新建 FB,命名为 CommUnitId,在静态变量中增加参数。
S7-1200 MODBUS TCP 通信多请求处理
图 10. 设置 FB 参数

参数含义参见表 2:
表 2. FB 接口参数含义
S7-1200 MODBUS TCP 通信多请求处理

  1. 编写轮循功能

如图 11 所示,例子中使用 SCL 的 CASE OF 方式编写轮询程序,SCL 的 CASE OF 指令编写顺控可以参考链接:文档。
思路如下:
步骤 0:等待连接建立,当连接建立则跳转到步骤 1。
步骤 1:设置读取参数,设置 MB_Unit_ID = 1,触发读取,当读取正常后,将读取到的数据存入指定数据区,然后跳转到步骤 2,如果故障同样跳转到步骤 2,如果连接中断则跳转到步骤 0。
步骤 2:设置读取参数,设置 MB_Unit_ID = 2,触发读取,当读取正常后,将读取到的数据存入指定数据区,然后跳转到步骤 1,如果故障同样跳转到步骤 1,如果连接中断则跳转到步骤 0。
如果有更多的读写需要,可以建立更多的步骤。
以下程序的源文件压缩包链接:源文件。将压缩包下载解压缩后,得到文件“CommUnitId.scl”,然后在 TIA Portal 项目中导入即可使用,导入源文件方式参见链接:文档。
以下例程仅供参考。读者如欲采纳,风险自担。
S7-1200 MODBUS TCP 通信多请求处理
11. 例子程序
3. 在主程序中调用该 FB,如图 12 所示
S7-1200 MODBUS TCP 通信多请求处理

图 12. 调用程序
五.通讯测试
通讯结果如图 13 所示。
S7-1200 MODBUS TCP 通信多请求处理

图 13. 测试结果
原文文章来源地址https://www.toymoban.com/news/detail-495427.html

到了这里,关于S7-1200 MODBUS TCP 通信多请求处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • S7-1200PLC的TCP/IP通讯

    图1 TSEND_C指令 如图是TSEND_C指令,它的作用是建立连接并发送数据。对于其中各个参数的作用如下表: 参数 说明 REQ 在上升沿启动发送作业 CONT 控制通信连接 CONNECT 指向连接描述结构的指针 DATA 指向发送区的指针,该发送区包含要发送数据的地址和长度 DONE 状态参数,可表示发

    2024年04月10日
    浏览(45)
  • 西门子S7-1200与电脑的网线通信

    本篇文章针对PLC新手,介绍S7-1200与电脑之间的通信和程序的下载: 1.硬件接线:对于西门S7-1200的上电操作,只需要将PLC最上面的接线端L+和M接入直流24V的正负极即可;利用一根网线,连接PLC的网口和电脑的网口: 2.电脑配置:新建一个项目,组态PLC的模块,必须和实际的P

    2024年02月03日
    浏览(79)
  • 第三方调试助手的与S7-1200 PLC的通信

    1 、概述 西门子S7-1200 PLC支持多种协议通过以太网通讯方式,如OPC、TCP、S7、 MODBUS -TCP等。TCP方式相比其它协议,具有更多的灵活性,更快的数据响应等优点, 需要PLC与电脑还有其他设备进行TCP通讯,使用TCP调试助手与PLC做通讯测试 。     S7-1200 PLC的TCP通信方式 采用 “开放

    2024年02月02日
    浏览(73)
  • 博途PLC S7-1200/1500 ModbusTcp通信SCL代码篇(轮询)

    博途PLC MODBUS TCP的详细讲解和注意事项,可以参看下面这篇博文,这里不在赘述。这篇作为SCL代码篇主要给出SCL语言下的轮询写法和注意事项。限于本人水平和能力,文中难免出现错误和不足之处,诚恳的欢迎大家批评和指正。同时感谢大家订阅和关注。 博途PLC1200/1500PLC Mo

    2024年02月14日
    浏览(67)
  • 两个西门子S7-1200PLC之间的TCP以太网通讯

    两个西门子S7-1200PLC之间的TCP以太网通讯 西门子S7_1200两个CPU之间的以太网通讯程序,一个做主站一个做从站,可实现两个CPU之间的数据发送和读取,外加两个西门子KTP1200 12寸的触摸屏, 两个西门子S7-1200 PLC之间的TCP以太网通讯 随着工业自动化的发展,越来越多的设备之间需

    2024年02月02日
    浏览(45)
  • 西门子PLC S7-1200程序实例,西门子1200与安川机器人TCP IP通讯

    西门子PLC S7-1200程序实例,博图版本V15 1,西门子1200与安川机器人TCP IP通讯,包含机器人GSD文件; 2,西门子1200控制6轴伺服电机,四台台脉冲控制台达B2伺服,两台PN通讯控制西门子V90伺服电机; 3,两台西门子1200开放式通讯交互数据联动; 4,与4台位移传感器modbus485轮询读取

    2024年04月10日
    浏览(54)
  • S7-1200PLC 作为MODBUSTCP服务器通信(多客户端访问)

    S7-1200PLC作为MODBUSTCP服务器端通信编程应用,详细内容请查看下面文章链接: ModbusTcp通信(S7-1200PLC作为服务器端)-CSDN博客 文章浏览阅读239次。S7-200Smart plc作为ModbusTcp服务器端的通信S7-200SMART PLC ModbusTCP通信(ModbusTcp服务器)_s7-200 modbustcp-CSDN博客文章浏览阅读2.3k次。 https://rxxw-con

    2024年02月01日
    浏览(48)
  • C++上位软件通过LibModbus开源库和西门子S7-1200/S7-1500/S7-200 PLC进行ModbusTcp 和ModbusRTU 通信

            一直以来上位软件比如C++等和西门子等其他品牌PLC之间的数据交换都是大家比较头疼的问题,尤其是C++上位软件程序员。传统的方法一般有OPC、Socket 等,直到LibModbus 开源库出现后这种途径对程序袁来说又有了新的选择。           1 )使用简单, 利用MUDBUS库文件

    2024年02月03日
    浏览(52)
  • S7-1200PLC与ABB机器人进行PROFINET通信的具体方法和步骤详解

    1. TIA博途一侧的配置: 当我们安装好RobotStudio软件后,可以在以下的目录中C:ProgramDataABB Industrial ITRobotics ITDistributionPackagesABB.RobotWare-6.08.0134RobotPackagesRobotWare_RPK_6.08.0134utilityserviceGSDML找到对应的GSDML文件, 将该GSDML文件夹复制出来,放到自己创建的文件夹中,如下图所示

    2023年04月19日
    浏览(39)
  • 西门子S7-1200使用LRCF通信库与安川机器人进行EthernetIP通信的具体方法示例

    准备条件: PLC:S7-1200 1214C DC/DC/DC 系统版本4.5及以上。 机器人控制柜:安川YRC1000。 软件:TIA V17 PLC做主站,机器人做从站。 具体方法可参考以下内容: 使用的库文件为西门子 1200系列 PLC 与机器人通过 EtherNet/IP 协议通信时的参数配置功能块。 机器人侧Ethernet/IP设定 机器人开

    2024年02月03日
    浏览(103)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包