电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> 梯形图实例 >> 正文

深度剖析西门子PLC的开放式TCP通信梯形图 TCP通讯

作者:佚名    文章来源:本站原创    点击数:    更新时间:2022-10-22

对于自控或电气工程师来说,西门子PLC是每个人都非常熟悉的一款PLC品牌;而对于上位机开发工程师来说,Socket通信或TCP/IP协议也是必须要掌握的一种通信方式。刚好手头有一款西门子的200Smart PLC,可以利用它来跟大家聊聊Socket通信的那些事儿。

相比较而言,西门子PLC对Socket通信的支持性是很不错的。如果你在使用西门子软件或者逛西门子论坛时,发现一个词叫做Open User Communication或开放式通信,没错,那其实就是我们说的Socket通信方式。关于这一点,我们可以从以下两张图中看出,分别为S7-200Smart编程软件Micro/Win Smart V2.5及博途TIA V15.1编程软件中关于通信库的部分截图:

 

 

我们可以看到无论是西门子的中高端PLC还是低端PLC,都是支持开放式TCP/UDP通信的,既然都支持,我们来看下如何实现。

众所周知,对于Socket通信来说,是可以支持TCP、UDP等多种通信方式,但是今天在这里,我们主要针对TCP这种通信方式。除此以外,大家都知道,Socket会存在服务器和客户端的说法,也就意味着,同样是使用Socket通信,我们仍然需要确定到底PLC是作为服务器还是作为客户端,因为不管对于PLC编程或者上位机开发来说,这两种方式都是完全不同的,下面做具体介绍。

一、PLC作为TCP服务器的实战应用 

(1)PLC编程

1.1   创建一个TCPServer的子程序,拖拽一个TCP_CONNECT的库指令,对于该指令的每个引脚对应的含义,大家可以按下F1直接获取在线帮助,程序段1编写如下图所示: 

 

1.2  拖拽一个TCP_SEND的库指令,对于该指令的每个引脚填写,ConnID为1,Req为触发条件,必须为沿信号,这里为了方便,直接使用1秒的脉冲信号,DataLen及DataPtr为发送的起始字节指针及发送的字节长度,程序段2如下图所示:

 

1.3  拖拽一个TCP_RECV的库指令,对于该指令的每个引脚填写,ConnID统一为1,MaxLen为接收的最大程度,DataPtr表示接收字节存放的起始位置,程序段3如下图所示:

 

1.4  最后需要编译,编译会提示需要给库分配地址,点击文件下的存储器,给该库分配地址即可,然后在MAIN主程序中调用TCPServer这个子程序,并下载到PLC中,PLC编程部分结束。

 

(2)TCP调试助手测试

如果PLC程序编写没问题,打开一个网络调试助手,输入对应的IP地址及端口号,即可连接上服务器。

连接服务器后,PLC端会自动每隔一秒发送200个字节数据过来,这200个字节即对应VB100-VB299的值。

 

(3)上位机客户端软件开发

 

通过与编程软件的状态图表进行对照,可以实时读取PLC数据,并随时设置相应的数值。

 

二、PLC作为TCP客户端的实战应用 

(1) PLC编程

1.1   创建一个TCPClient的子程序,拖拽一个TCP_CONNECT的库指令,与服务器程序不同的是,这里需要把Active设置为ON,同时IP地址和端口号需要根据上位机实际情况填写,程序段1编写如下图所示:

 

1.2   拖拽一个TCP_SEND的库指令,对于该指令的每个引脚填写,ConnID为2,Req为触发条件,必须为沿信号,这里为了方便,直接使用1秒的脉冲信号,DataLen及DataPtr为发送的起始字节指针及发送的字节长度,程序段2如下图所示:

 

1.3  拖拽一个TCP_RECV的库指令,对于该指令的每个引脚填写,ConnID统一为2,MaxLen为接收的最大程度,DataPtr表示接收字节存放的起始位置,程序段3如下图所示:

 

1.4   最后需要编译,如果已经编写过服务器程序,这里就不需要分配地址了,直接在MAIN主程序中调用TCPClient这个子程序,并下载到PLC中,PLC编程部分结束。

(2)TCP调试助手测试

如果PLC程序编写没问题,打开一个网络调试助手,设置模式为TCP Server,输入端口号为2000,即可开启服务器。

服务器开启后,PLC端会自动连接服务器,并且每隔一秒发送100个字节数据过来,这100个字节即对应VB500-VB599的值。

 

(3) 上位机服务器软件开发

 

通过与状态图表进行对比,验证可以正常读取和写入PLC数据。

三、整体总结

后续通过进一步测试,验证PLC可以同时作为服务器和客户端与上位机进行通信。

本次主要针对西门子PLC的开放式TCP通信作了较为详细地阐述,由于篇幅有限,无法将上位机部分的具体编程代码进行分析。

Tags:西门子PLC,TCP,通讯,梯形图  
责任编辑:admin
相关文章列表
西门子PLC模拟实现自动售卖机案例,售货机梯形图实例
理解西门子PLC间接寻址和指针梯形图实例,S7-200SMART
触摸屏与PLC之间无线通讯步骤详解,PLC与触摸屏通讯
西门子S7-200通讯控制台达变频器,实例讲解Modbus RTU通讯
modbus协议详解_西门子S7-200与变频器MODBUS通讯实例详解
西门子plc梯形图编程实例 西门子200smart与电流表Modbus RTU通讯
使用西门子plc的Modbus通讯 串口调试助手与S7-200SMART PLC从站通
西门子PLC串口通讯方法 RS485 串口通讯
西门子plc梯形图实例S7-200Smart与ABB ACS550变频器通讯Modbus通
西门子S7-200PLC ModbusTCP通讯,ModScan32使用
Modbus通讯简单测试—Modscan32使用简介
Modbus Scan32模拟软件使用,Modscan32使用教程
西门子plc s7-200通讯设置(西门子plc200与电脑通讯怎么设置)STEP
西门子S7-200PLC中,如何将大于32767的整数转换成正实数?VD、VW
西门子plc S7-200系列中断指令第二部分 ENI和DISI指令
西门子plc置位与复位指令的功能说明
西门子plc与modbus设备进485通信详解(modbus多机轮询)读取仪表
寄存器PLC地址与寄存器modbus协议地址 三菱FX系列西门子s7系列pl
西门子PLC S7-200smart与汇川变频器通过通讯控制 梯形图实例
西门子PLC梯形图编程 控制汽车自动清洗装置
西门子PLC S7-200 实数运算指令的应用的指令表及梯形图 除法
西门子plc S7-200系列PLC整数乘除法指令的格式及使用
西门子plc梯形图实例 S7-200系列PLC转换指令练习实例 整数实数转
西门子plc梯形图实例 MOV指令数据传送
西门子plc S7-200系列梯形图实例:电机多段定时启动功能 READ_RT
西门子plc梯形图实例S7-200系列PLC增减计数指令入门 CTUD增减计数
西门子PLC试题5:小车往复运动控制系统梯形图实例
西门子plc比较指令的实例代码梯形图实例,计数器CTUD和比较指令
西门子plc实现8个彩灯移位控制的代码梯形图实例MOV_B,ROL_B,ROR_
西门子plc s7-200系列梯形图实例:设置时钟指令 SET_RTC和MOV_B
请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
1分 2分 3分 4分 5分

还可以输入 200 个字
[ 查看全部 ] 网友评论
推荐文章
最新推荐
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询