当前位置: 首页 > news >正文

PLC编程—S7、OPC UA、Web通讯

PLC的通讯一般有串口、网口通讯两大类。本节讲网口通讯,分为S7、OPC UA、WEB...;下一节将开放式用户通讯

目录

  • 前言
  • 要求:PLC的CPU属性设置
  • 一、S7(PUT、GET)
    • 1)在B-PLC中使用S7通信(PUT/GET)
    • 2)注意事项:
  • 二、OPC UA(Server、Client)
    • 1)PLC作为OPC Server与Client用户通讯
    • 2)PLC作为OPC Client与Server用户通讯
  • 三、Web服务器(WWW)
    • 1)PC端访问
    • 2)移动端访问

前言

CPU 的 PROFINET 通信口主要支持以下通信协议及服务:

  • S7 通信
  • OPC UA 服务器
  • Web 服务器
  • 开放式用户通信
  • PG 通信(编程调试)
  • HMI 通信

以太网通讯


要求:PLC的CPU属性设置

  • 设备组态——防护与安全——(访问级别<完全访问>、连接机制<勾选允许PG/PC>)
  • 项目——属性——保护<块编译时支持仿真>
  • 通讯块程序一边写在循环中断块中(OB30…38),缩短PLC循环时间,降低PLC通讯负载

SIMTIC NET
以太网通讯


一、S7(PUT、GET)

在不更改A-PLC程序的前提下,通过修改B-PLC程序实现与A-PLC的数据交换。最推荐、最可靠且最高效的方式是使用西门子S7-1500内置的S7通信协议(PUT/GET指令)。以下是详细的实现步骤和说明:

1)在B-PLC中使用S7通信(PUT/GET)

前提:

  1. 确保PLC A和PLC B通过工业以太网连接在同一个子网中(记录好两台PLC的IP地址)
  2. A-PLC中的 属性->常规->防护与安全”里“连接机制”一项需要勾选“允许来自远程对象的PUT/GET通信访问”(一般做项目的均默认勾选,未勾选的联系项目负责人进行程序修改)

步骤:

  1. 在B-PLC中创建用于通信的DB块(数据缓冲区)

    • 创建接收(GET)映射区域

    • 创建发送(PUT)映射区域

    • 接收/发送数据的数据类型至少为Byte;要传送单个Bool除外

  2. 在B-PLC中编写GET通讯程序

    • GET指令配置示例 (读取A-PLC的I区到B-PLC的DB):
    • 指令块:“Get” (在指令列表 -> “通信” -> “S7通信” 下)
    • 参数:
      • REQ: 上升沿触发 (例如用时钟存储器M0.7-0.5Hz的上升沿 M0.5-1Hz测试不可-1.4)
      • ID: 连接标识符。关键步骤:在GET指令右上方的工具箱上点击。
        • 在弹出窗口中:“伙伴”选择“未知”。
        • 伙伴地址填写对应的IP
        • 连接名称新建“S7连接”;可以同一IP建立多个S7连接
        • 默认勾选主动建立连接;单向连接
      • ADDR_1: A-PLC源数据区域的指针。核心配置!
        • 部分连续读取:对于I3122.0开始的字节:P#I3122.0 BYTE 1(只关心I3122的2.3.4位,这是连续的,可读取一个字节)
        • 单个位读取:如果只读取一个位I880.7,则直接写:P#I880.7 BOOL 1
        • 多个区域读:ADDR_2.3.4中填写
      • RD_1: B-PLC目标DB接收区的指针。核心配置!
        • 部分连续接收:对于接收I3122.2.3.4填写:DB50.DBB0/ P#DB50.DBX0.0 Byte 1
        • 单个位接收:位I880.7的接收填写:B50.DBX3.1/ P#DB50.DBX3.1 BOOL 1
        • 多个区域接收:RD_2.3.4中填写
      • DONE, BUSY, ERROR, STATUS: 用于监控指令执行状态和错误信息。
    • 跨区域读取过多,则需要创建多个GET指令
  3. 在B-PLC中编写PUT通讯程序

    • PUT指令配置示例 (将B-PLC的DB数据写入A-PLC的Q区)
    • 指令块:“Put” (在指令列表 -> “通信” -> “S7通信” 下)
    • 参数:
      • REQ: 上升沿触发
      • ID:并行(同时触发)通讯必须使用与GET指令不同的连接ID!重复新建连接的步骤,TIA会自动分配另一个唯一的ID(如W#16#101);可以串行(轮询)通讯使用相同ID。
      • ADDR_1: A-PLC目标数据区域的指针。
        • 对于写入Q1778.5.6.7开始的字节:P#Q1778.5 BYTE 1
        • 对于写入Q496.2的单个Bool值:P#Q496.2 BOOL 1
      • SD_1: B-PLC源DB发送区的指针。
        • 对于发送Q1778.5.6.7开始字节: DB51.DBB0/ P#DB51.DBX0.0 BYTE 1
        • 对于发送Q496.2的单个Bool值:DB51.DBX4.6
      • DONE, BUSY, ERROR, STATUS: 状态监控。
    • 同样,如果目标地址不连续(如Q987和Q897),需要多个PUT指令。
场景是否允许相同ID条件
PUT和GET同时执行❌ 不允许必须不同ID
PUT和GET串行执行✅ 允许用BUSY信号(status代码写程序)确保不重叠
多个GET同时执行❌ 不允许每个GET需独立ID
多个GET串行执行✅ 允许同一ID可重复使用
  1. 在B-PLC中处理接收到的数据:
    • 从A-PLC读取的数据(开关量状态)现在存储在中DB50.DBB0中。
    • 例如,要使用A-PLC的I3122.2状态:
      • 访问“DB_Name”.PV_Name.%X2即可:“leak_R”.I3122.%X2

2)注意事项:

  1. 字节操作:这是S7通信的基础。必须读取/写入包含目标位的整个字节。在B-PLC侧,需要在DB中定义这些字节变量,并在逻辑中处理特定位。《假设Q1778.5、Q1778.6、Q1778.7是连续的位(虽然不是字节对齐,但S7通信按字节来操作操作ADDR_1:P#Q1778.0 Byte 1》
  2. 地址映射:GET指令的ADDR_1指向A-PLC的物理地址(I/Q区)、RD_1指向B-PLC的DB接收区。PUT指令ADDR_1指向A-PLC的物理地址(Q区)、SD_1指向B-PLC的DB发送区。
  3. 连接ID:每个PUT或GET指令需要一个唯一的连接ID。同一活动PUT/GUT通讯ID必须不同,轮巡可使用同一ID,S7-1500 CPU有最大S7连接数限制(如CPU 1511最多16个),合理分配ID。
  4. 通信伙伴:在B-PLC的网络视图中添加的“PLC_A”设备只是一个通信伙伴的符号表示,用于组态连接。A-PLC不需要做任何组态修改或下载。(直接添加的S7连接、测试过程没有单独组态伙伴)
  5. 通信速率与负载:S7通信高效可靠。对于少量开关量点,通信负载极低,使用OB1即可。如果数据量非常大或要求严格同步,考虑使用更快的循环中断OB和优化数据打包。避免过于频繁地调用PUT/GET(例如每个周期都调用),可以在定时中断或状态变化时触发。
  6. 错误处理: 强烈建议添加对GET/PUT指令ERROR和STATUS输出的监控。将错误信息记录或报警。配置好OB86(机架故障OB,用于处理通信丢失)和OB121/122(编程错误OB)。

S7通讯


二、OPC UA(Server、Client)

OPC UA是一种面向服务的通信协议,可实现从机器到机器间的水平通信和从机器到云端的垂直通信。专门用于连接工业自动化及物联网设备和云端服务器之间,提供跨平台、安全、可扩展的数据交互。

技术特性

  • 跨平台信息模型(支持.NET, Java, C++)
  • 内置安全机制(X.509证书,AES256加密)
  • 支持Pub/Sub模式(与MQTT结合)

典型应用

  • 跨厂级数据采集(SCADA到MES层)
  • 数字孪生数据对接

使用方法

1)PLC作为OPC Server与Client用户通讯

  • 要求:设备组态—OPC UA—启动OPC UA服务器…设置相关参数(系统运行许可证)
  • 服务器接口 :项目树OPC UA通讯—服务器接口—新增接口…
  • 说明:接口定义成服务器接口与不定义接口直接访问全局变量的节点属性、格式均不一样(定义成接口更标准化)

什么是服务器接口?



2)PLC作为OPC Client与Server用户通讯

  • 要求:在 CPU 特性中选择“OPC UA > 客户端”(OPC UA > Client)——选择“启用 OPC UA 客户端” 选项
  • 第一步(创建客户端接口):项目树“OPC UA 通信 > 客户端接口”>双击“添加新客户端接口”(Max=40/4)>选择客户端接口>添加读取/写列表>选择“源”>拖拽变量到列表>编译(自动生成[Name]_Data/Configuration数据块:更改后会自动更新无需手动更改)
  • 第二步(分配连接参数):右击客户端接口>属性>组态>设置连接地址(可“在线访问查看”)
  • 第三步(编程及测试):编写FB块(连接-读写-释放…官方块<添加5个PLC数据类型UDT>变量表(用户常量4个)>)>调用FB块填写引脚参数(依据[Name]_Data/Configuration数据块填写)
  • PLCServer亲测有效;KepServer测试失败(两者节点类型不同(n=4;i=3/n=2;s=通道1.标记1)有关);



S7-1500 OPC UA 客户端


三、Web服务器(WWW)

功能

  • 可通过 Internet 或公司内网监视 CPU,进行远程评估和诊断。
  • 使用 Web 浏览器访问自由设计的Web 应用程序。

要求:CPU特性—勾选“启用通过接口IP访问Web服务”—“Web服务器”设置相关参数(用户管理、监视表等…)。
过程:PC端、手机终端分别通过有线、无线的方式连接PLC,访问到WEB界面(标准界面、自定义界面)。
结构:如下图所示

1)PC端访问

  • PC 和 PLC 分别连接到交换机上(无交换机可直连);PC端浏览器键入IP进入标准界面
  • 注意:PC的有线网卡设置为PLC的IP段,确保联通性即可。

2)移动端访问

  • 移动端无网络接口,只能通过无线形式,So,PLC 须通过无线设备(路由器)映射成无线(Wifi)信号供移动端连接;
  • 注意:若手机端连接路由器Wifi信号(无需固定无线IP<路由器设置成DHCP为无线终端自动分配>),须关闭流量(确保只有一个WIFI信号连接)

3)自定义Web应用程序(需用WWW指令)

4)总结
1.路由器设置方法(注意不能用WAN口),局域网IP段设置成PLC相同段(DHCP功能开启)
2.虚拟机无线连接PLC,虚拟网络编辑器-设置到无线网卡模式;网络形式为物理桥接
3.无线设备尽可能选用工业产品,这里测试用家用/企业华为路由器

Web Server 说明
Web 常见问题
PC端访问
手机端访问


http://www.jsqmd.com/news/1030529/

相关文章:

  • Scrapling:Python网络爬虫的智能进化,让数据采集变得像呼吸一样自然
  • 2025-2026年国内Q1羊绒衫厂家推荐:TOP5产品评测休闲百搭防变形专业选择指南 - 品牌推荐
  • Chart.js金融图表核心功能解析:K线图与OHLC图的实现原理详解 [特殊字符]
  • 佛山黄金回收行情参考,6家主流门店出价对照指南 - 讯息早知道
  • 2026上海本地人必选地下室防水TOP5|正规备案防水保温公司深度调研推荐(免砸砖/屋顶/外墙/地下室全覆盖) - 速递信息
  • 西安黄金旺季变现避坑指南 金价高位卖金防套路完整攻略 - 奢侈品回收测评
  • 北京监察调查阶段法律咨询要点:资深律所推荐 - 品牌2026
  • 2026年成都市装修公司口碑排名榜:拒绝恶意增项,预算可控避坑! - 装修新知
  • 终极指南:如何使用FreeRDP实现跨平台远程桌面连接
  • 关节里的“原位”细胞:武汉云克隆犬关节软骨细胞(AC)原代细胞让体外研究无限逼近体内真实
  • 探寻靠谱大牌首饰回收渠道,老牌门店性价比之选 - 奢品小当家
  • 跨平台部署Hy-Embodied-0.5-VLA-UMI:支持4种真实机器人平台的技术解析
  • 让音乐在屏幕上舞动:MusicWave的渐变色彩可视化魔法
  • 2026高考参考:东北大学工商管理学院专业搭配双学位,就业前景广阔 - 品牌2026
  • CodeWarrior IDE 5.5菜单功能深度解析:从构建到调试的嵌入式开发实践
  • 齿轮泵优选:2026年高温齿轮计量泵十大品牌排名 - 微流测控
  • IDE项目管理进阶:链接顺序、构建目标与工作区布局实战解析
  • Duix-Avatar:本地化数字人视频合成终极指南
  • 资质称重双标准评测,合肥无虚高引流黄金回收门店排名 - 讯息早知道
  • 2026年国内高精度齿轮厂家怎么选?供应商评估要点 - GrowthUME
  • 10分钟快速掌握Isaac Lab:机器人学习框架终极实战指南
  • 达梦数据库的基础学习
  • 课题组协同制图实操心得,多人统一图表风格实用方法 - 品牌2026
  • 实测深圳老牌黄金回收店,称重检测全程透明 - 讯息早知道
  • 中国位于第一梯队的展厅设计公司有哪些?中国顶流展厅设计公司前五 - 优质品牌甄选
  • Windows 11安卓子系统完整配置指南:WSABuilds一站式解决方案深度解析
  • 2026 上海卡地亚手表回收全攻略:爆款行情・鉴定要点・7 大品牌实力测评 - 薛定谔的梨花猫
  • 从入门到精通:利用Stata的medsens包完成中介效应敏感性分析
  • 2026埃塞俄比亚商务舱机票预订深度指南 - 奔跑123
  • 接口文档一上传,接口测试用例自动生成?爱测平台把这个能力做出来了