西门子PLC开放式以太网通信经验分享

1、关于建立连接

无论是基于UDP协议还是TCP协议,西门子PLC开放式以太网通信的第一步都是调用TCON指令建立连接。该指令如下图所示:

对于TCP通信来说,TCON指令会在两个通信伙伴之间建立真正的通信链路。因此,需要在该指令的connect参数中指定对方的IP地址和端口号;

对于UDP通信来说,由于它是一种无连接的协议,TCON指令不会建立真实的通信链路,因此通信伙伴的IP和端口号是可以不填写的。那么为什么还要调用TCON指令呢?其实,对于UDP通信,调用TCON指令的目的是开放本地端口号,并创建一个通信的ID。开放本地端口后才能接收对方发送到这个端口的数据,而通信的ID则用于后续的发送/接收指令。

在博途环境下,可以直接点击TCON指令右上方的'小房子'符号对通信参数进行配置的。

2、关于请求信号

请求信号建议使用上升沿触发,如下图所示:

3、创建通信成功建立标识变量

由于TCON指令的输出参数DONE只在一个扫描周期内有效,因此,需要另外创建静态变量来表示是否已经建立通信或者端口已经成功开放,比如下面图片中的statConnectBuildUpOK。

对于TCON指令的输出值,我之前使用临时变量,调试过程发现偶尔会出现无法置位statConnectBuildUpOK变量的情况。因此对于TCON的输出值也建议使用静态变量,如下图所示:

4、数据发送指令TUSEND

TUSEND指令可以发送UDP数据,它是异步执行指令,也就是说其执行过程可能需要多个扫描周期。因此,其Req请求发送信号要使用上升沿,并且配合指令的输出值,比如busy、error等信号使用。

该指令的ADDR参数是通信伙伴的IP地址和端口号,其数据类型为TADDR_Param,必须在这里指明IP地址和端口号。

可以创建全局数据块存放发送的地址,如下图所示:

数据发送的指令示例如下(未指明发送的数据):

5、数据接收指令

数据接收指令TURCV用来接收UDP数据,同样的,也需要在其ADDR参数中指明通信伙伴的IP地址和端口号。

这个指令强调一点,其使能接收EN_R参数,最好使用之前创建的静态变量statConnectBuildUpOK作为其中之一的条件,下图是一个示例(数据部分未填写,你要根据实际情况填写):

6、断开连接

在某些情况下(比如关机)需要将连接断开,这时要使用TDISCON指令。

该指令与TCON类似,需要使用上升沿信号触发。需要注意的是,在断开连接成功执行后,将之前的静态变量statConnectBuildUpOK复位,如下图所示:

好了,这就是我的关于UDP通信的一些经验分享。文章没有对所有的细节进行介绍,只是强调了一些需要注意的地方。关于更多的细节,请点击本文开头处的链接查看。

我的书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》也有关于通信的介绍,欢迎点击下面的链接查看:

(0)

相关推荐

  • 三菱FX5U以太网开放式Socket通信客户端视频教程

    三菱FX5U系列PLC做以太网开放式通信客户端.以太网调试助手做以太网开放式通信服务器,三菱FX5U先行发送8个字节给以太网调试助手,以太网调试助手再返回8个字节给三菱FX5U.视频较为详细的讲解了三 ...

  • S7-200SMART的UDP通信(上)

    200SMART的开放式通信(Open User Communication)包括TCP通信,UDP通信以及ISO-on-TCP通信,支持CPU固件版本V2.2以上,常用于与第三方支持相同协议的设备通 ...

  • S7-1500和MCGS之间的以太网通信

    (一)1500PLC端的操作 1.1500PLC的硬件IP地址要和MCGS在同一个网段(关)都可以,并且PLC要允许接受远程对象的通信访问. 2.MCGS 和 1500 的数据交换, MCGS中的&q ...

  • 周报64期 | ABB机器人通讯及基础知识汇总!

    小编给大家整理了三菱机器人.库卡机器人.发那科机器人.安川机器人.ABB机器人以及HALCON视觉等机器人的资料,赶紧扫码领取吧! 扫码领取 技成周报:64期 1.在RAPID里,指令前加感叹号代表的 ...

  • 松下FP0H系列PLC实现Modbus TCP\RTU\ASCII通信视频教程

    一.松下FP0H系列PLC实现Modbus TCP以太网通信客户端视频教程: 松下FP0H做Modbus TCP客户端.Modbus Slave调试助手做Modbus TCP服务器,视频详细讲解了UN ...

  • S7-1200和三菱Q系列PLC的开放式以太网通信

    关于启程 启程自动化成立于2012年,培训项目主打西门子PLC编程系统集成.工业机器人编程.EPLAN电气设计.视觉等培训与技术服务的机构.官网:www.qichengplc.com (一)硬件组成 ...

  • 西门子PLC的USS通信程序原来是这样编写,赶紧转发收藏!

    S7-200 SMART本体集成的 RS 485 通信口可以工作在自由口模式下,支持 USS 通信协议. S7-200 SMART 与驱动装置(变频器)进行 USS 通信时可以: 1)根据驱动装置的具 ...

  • 基于西门子PLC的Socket通信深度剖析

    对于自控或电气工程师来说,西门子PLC是每个人都非常熟悉的一款PLC品牌:而对于上位机开发工程师来说,Socket通信或TCP/IP协议也是必须要掌握的一种通信方式.西门子的200Smart PLC, ...

  • S7-200系列PLC自由口通信知识分享(3)

    在前面的文章中与大家分享了自由口通信中的发送功能,那么进行就跟大家聊聊自由口通信中的接收功能,自由口通信中的难点就是在于接收功能的使用,当PLC通过通信端口把数据发送给下位设备后,下位设备会根据PLC ...

  • S7-200系列PLC自由口通信知识分享(2)

    在上一篇文章中,我们提到了有关于自由口通信的一些基础知识,给大家解释了什么叫通信协议,什么叫信息帧或消息报文,起始符/结束符与起始位/停止位之间的关系.那么今天就跟大家聊聊西门子S7200系列的自由口 ...

  • 西门子PLC s7-1200 modbus-tcp通信实例编程详细指导

    西门子S7-1200Modbus-TCP通信例子[]绝密[]NDA[X]公开一. 组网概述本文以 ZKA-4488-ETH 为例介绍西门子PLC与深圳市综科智控科技开发有限公司的IO设备进行Modbu ...

  • 西门子PLC s7-1200 modbus-rtu通信实例编程详细指导

    []绝密[]NDA[X]公开一. 组网概述本文以 ZKA-4488-RS485 为例介绍西门子PLC与深圳市综科智控科技开发有限公司的IO设备进行Modbus通讯的步骤设置.ZKA-4488-RS48 ...

  • 西门子S7-1200之间以太网通信(图文)

    一.通信前的准备 首先创建新项目,并命名为"s7-1200之间通信",如下图所示: 然后组态设备,选择s7-1200的CPU 1214C DC/DC/RLY,版本号为4.1,如下图 ...

  • 小白学习西门子PLC从入门到进化,经验分享,让你少走弯路

    学习西门子PLC没有想象中那么难,一句话可以总结为:对初学者来说,600多块的SR20就足够用了. 详细展开讲,就涉及到PLC的硬件组成.编程软件.系统指令和程序结构等复杂的内容. 接下来,我将从PL ...