参考文章

  1. 使用HslCommunicationDemo进行PLC仿真-微信公众号

前言

之前写过一个使用 Snap7 demo 进行通讯的教程:S7 协议调试工具 / 模拟器 --snap7 demo server_partner_client-CSDN博客

最近发现另一个很好用的软件 – 胡工科技 HSL Communication demo
官网:http://www.hsltechnology.cn/Home/Download

HSL Communication 是胡工科技开发的工业上位机通讯中间件
功能强大,可实现与市面上几乎所有品牌、所有工控协议的通讯
在这里插入图片描述

这个 demo 软件相当于在中间件基础上的测试 demo 界面,具有以下特点:

  • 支持的协议多、丰富,功能全面,西门子 S7 协议、Modbus 协议、MQTT、OPC UA 等主流工控协议都可在此软件中进行调试
  • 此调试软件个人研究用途使用免费,无功能、时间限制
  • 经测试 demo 软件性能不错
    只测试了 Modbus RTU 的性能,使用 demo 中的《modbus rtu 客户端》发送连续的 40 个寄存器,最快发送周期 15ms
  • 目前来看软件售后OK,更新频繁(基本上每个月都有新版本),短期之内没有跑路问题
  • 此软件是国人开发(看软件界面、官网风格就知道),支持国产

HSL demo 软件下载、安装(略)

软件的下载、安装跳过,上官网下载即可
下面直接介绍打开软件之后如何使用实现 S7 通讯

HSL demo 软件做 S7 服务端

HSL 软件的使用,有以下几个步骤

  1. 启动 HSL 中的 S7 服务端仿真功能 – S7 Virtual Server
  2. 配置 S7 Sever 的 DB 块:新增、设置 DB 块编号、长度
  3. 读写仿真DB中的数据:
    1. 在 HSL 的 S7 服务端界面中批量写入数据
    2. 使用 HSL 的 S7 客户端写入数据
    3. 使用外部工具写入数据(如 Snap7 client demo)
  4. 监控当前模拟的数据
    1. HSL 点位变量功能,以表格形式监控数据
    2. HSL 模拟数据功能,实现变化的模拟数据
    3. HSL 批量读取+解析,对报文数据实现自定义解析
  5. HSL 调试软件的其他功能
    1. 解决端口冲突:端口转发 tcp2tcp

启动服务

在软件左侧找到:西门子 --> S7 Virtual Server,双击进入此协议测试界面
测试界面点击【启动服务】
在这里插入图片描述

添加测试数据

添加数据的方法

测试数据可通过以下两种方法添加:

  1. 在右侧【单数据写入测试】区域,输入地址、值、然后点击要写入的方法(写入的数据类型)写入数据
  2. 使用【批量读取】中的报文【解析】 + 【批量回写】功能写入数据
    在这里插入图片描述

使用【批量读取】功能

  1. 先输入要读取的【地址】、【长度】
  2. 然后勾选左下角的【解析】功能,然后弹出右侧表格
  3. 需要在表格中定义批量读取的数据,在 value 列输入要设置的值
  4. 最后然后点击【批量回写】

批量读取 -> 解析 --> 表格中的配置项

  • 起始地址
  • 数据类型
  • 长度(数据的数量)
  • 偏移量(在 S7 中偏移量从0开始,Bool 类型算的是 bit 位的偏移,其他数据类型算的是 Byte 的偏移量)

HSL 软件中支持的地址、地址的写法

可在软件的【地址示例】中查看
在这里插入图片描述

HSL 软件中支持的数据值写法

数组(读写多个相同类型变量)、重复,详见软件说明文字
在这里插入图片描述

示例1:使用 HSL 软件添加数据

示例1-1:HSL 的 S7 服务端,使用【单数据写入测试】写入 DB1.6 整个 Byte 的数据
(从左往右为低到高位,图中数据对应 Byte 值 = 138)
在这里插入图片描述

示例1-2:HSL 的 S7 服务端,使用【单数据写入测试】写入 DB1.6 中第 2 位的数据(位索引从 0 开始)
在这里插入图片描述

示例1-3:HSL 的 S7 服务端,使用【批量读取】+解析+【批量回写】写入 多个数据
在这里插入图片描述

DB地址 数据类型 数据长度(数量) Byte偏移(占用Byte数) HSL软件中的地址 设置值
1 SHORT 1 0(2) DB1.0 212
1 FLOAT 1 2(4) DB1.2 123.456
1 BOOL 8 6(1) DB1.48 [0,1,0,1,0,0,0,1]

读取、解析测试数据 – 使用 HSL 服务端界面功能监控数据(略)

读取数据的配置方法、地址写法,与上面的【单数据写入测试】、【批量读取】+解析类似,这里省略

读取、解析测试数据 – 使用 HSL 中的 客户端 读写 HSL 服务端数据

HSL 默认配置了 DB1、DB2、DB3,每个 DB 长度为 55535 字节(与 Snap7 demo 界面配置相同)
若使用以上默认,则无需额外配置,然后照着上面的【单数据写入测试】、【批量读取】+解析两种方式设置值即可

若使用其他 DB,需要先在【db block】选项中添加对应编号的 DB 块,然后再按照上面的步骤进行设置
在这里插入图片描述

读写测试数据 – Snap7 demo 读写 HSL 服务端数据

使用之前在我的另一篇博文中介绍过的 Snap7 demo 实现 DB 块的读写,但服务端使用 HSL 软件实现
Snap7 client demo 的使用,见我的博文:https://blog.csdn.net/weixin_44112083/article/details/130627005

HSL demo 软件的其他功能

解决端口冲突:TCP数据包转发 tcp2tcp

HSL 内部有个小工具,可实现不同端口数据的互通
点击软件界面上方 菜单栏【调试】–> tcp2tcp,打开【tcp2TCP】选项卡
在这里插入图片描述

相关配置说明:

  • 本地发送给【本地端口】的数据,通过 HSL 软件发送给【远程IP】的【远程端口】
  • 从远程IP返回的响应数据,HSL 软件接收后,返回给本地对应的软件
  • 由于要通过本机 HSL 软件做数据转发,因此在调试软件客户端中,通讯的IP地址应为本机 IP 127.0.0.1

使用示例
西门子 S7 协议通讯
本地:使用 Snap7 demo client 客户端软件访问,地址 127.0.0.1,本地端口 102

远程:使用 HSL 的 S7 服务端进行模拟,远程 IP 地址 192.168.0.100,远程端口 1010在这里插入图片描述

配置 HSL 的 tcp2tcp 功能
在这里插入图片描述

测试结果:Snap7 client demo 正确读写 HSL 服务端中的数据
在这里插入图片描述

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐