0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

PLC技术圈 ? 来源:PLC技术圈 ? 作者:PLC技术圈 ? 2020-09-25 11:44 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

相比较而言,西门子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的开放式TCP通信

文章出处:【微信公众号:PLC技术圈】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    5037

    文章

    14083

    浏览量

    476488
  • 西门子
    +关注

    关注

    98

    文章

    3193

    浏览量

    118599
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1409

    浏览量

    81505

原文标题:深度剖析西门子PLC的开放式TCP通信

文章出处:【微信号:xue_PLC,微信公众号:PLC技术圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    利用Ansible自动化部署Linux服务器

    作为一名在运维一线摸爬滚打多年的工程师,我见过太多因为手工配置导致的生产事故。今天,我将毫无保留地分享我在大规模Linux服务器自动化管理中积累的实战经验,让你也能轻松驾驭数百台服务器
    的头像 发表于 08-06 17:59 ?317次阅读

    如何构建Linux服务器安全防护体系

    前言:作为一名运维工程师,我见过太多因为安全配置不当而被攻破的服务器。本文将分享我多年来积累的实战经验,教你如何构建一套完整的Linux服务器安全防护体系。
    的头像 发表于 08-05 17:35 ?238次阅读

    汇川PLC通过ModbusTCP转Profinet网关连接西门子PLC配置案例

    本案例是汇川的PLC通过开疆智能研发的ModbusTCP转Profient网关读写西门子1200PLC中的数据。汇川PLC作为ModbusTCP的客户端网关
    的头像 发表于 08-04 19:18 ?184次阅读
    汇川<b class='flag-5'>PLC</b>通过ModbusTCP转Profinet网关连接西门子<b class='flag-5'>PLC</b>配置案例

    国外bgp服务器多少钱?# 服务器

    服务器
    jf_57681485
    发布于 :2025年04月24日 14:19:00

    新加坡服务器延迟大吗?真相在这里#新加坡服务器 #服务器

    服务器
    jf_57681485
    发布于 :2025年04月18日 13:48:50

    esp8266作为tcp客户端,服务器主动断开连接后,是会主动重连吗,如何设置不要主动重连呢

    服务器在关闭了该tcp通道之后,使用wireshark抓取的包如下,这是在接受到断开之后,又进行重连了吗?
    发表于 04-02 22:33

    存储服务器怎么搭建?RAKsmart实战指南

    搭建存储服务器需兼顾硬件性能、数据冗余与安全访问。以RAKsmart服务器为例,整体流程可分为五步:需求评估→硬件选型→RAID配置→系统部署→网络设置。以下是小编对RAKsmart存储服务器怎么搭建的
    的头像 发表于 04-01 10:09 ?429次阅读

    NTP校时服务器 时钟同步服务器

    服务器
    jf_75250307
    发布于 :2025年03月19日 20:56:34

    DeepSeek企业级部署实战指南:以Raksmart企业服务器为例

    随着人工智能技术的快速发展,DeepSeek作为一款强大的AI工具,正在成为企业智能化转型的重要驱动力。本文将结合Raksmart企业服务器的实际案例,详细解析DeepSeek的企业级部署流程、优化
    的头像 发表于 03-12 11:33 ?686次阅读

    服务器还是服务器好用一些?

    服务器还是服务器好用一些?云服务器服务器各有优势。服务器作为独立物理设备,适合需高性能、物理
    的头像 发表于 12-26 10:08 ?535次阅读

    独立服务器与云服务器的区别

    随着互联网技术的飞速发展,企业对于服务器的需求日益增加,而服务器市场也随之出现了多种类型的产品,其中最常见的是独立服务器和云服务器。这两种服务器
    的头像 发表于 10-12 14:34 ?790次阅读

    使用NS1串口服务器HTTP模式上传服务器数据

    HTTP协议工作于客户端-服务端架构之上。浏览作为HTTP客户端通过URL向HTTP服务端即Web服务器发送所有请求。Web
    的头像 发表于 08-30 12:36 ?1096次阅读
    使用NS1串口<b class='flag-5'>服务器</b>HTTP模式上传<b class='flag-5'>服务器</b>数据

    串口服务器TCP/IP协议栈是什么关系

    串口服务器TCP/IP协议栈之间存在着紧密而复杂的关系。这种关系主要体现在串口服务器如何利用TCP/IP协议栈来实现串口设备与网络之间的数据通信。以下是对这种关系的详细解析。
    的头像 发表于 08-25 17:35 ?2203次阅读