西门子 PLC 通讯(三):用 NetToPLCsim 连普通 PLCSIM
2022 年 9 月 1 日 · 1 分钟读完
目录
测试西门子 PLC 通讯时找到的一个简单工具。博图自带的 PLCSIM 不对外开放网络端口,NetToPLCsim 在本机网卡上监听 102 端口,把收到的 S7 请求转发给 PLCSIM。比 PLCSIM Advanced 轻量,不挑 CPU。
下载地址:NetToPLCsim
使用步骤
1. 准备博图项目
和 PLCSIM Advanced 一样:允许 PUT/GET、完全访问权限、DB 块取消优化访问。详见 上一篇第三节。
2. 配置本地网卡
本地网卡的 IP 要和上位机在同一个网段,我这里是 192.168.0.x:

3. 以管理员身份启动 NetToPLCsim
它要占用 102 端口,不用管理员身份打开会搜索不到端口。启动时会提示停止占用 102 端口的系统服务(S7DOS Help Service),选「是」:

等它处理完点 OK:

4. 在博图里启动仿真并下载程序

5. 在 NetToPLCsim 里添加转发
点 Add 打开添加界面:

Network IP Address 选本地网卡(上位机连这个 IP):

Plcsim IP Address 选仿真 PLC 的地址。注意要先打开博图仿真,再打开 NetToPLCsim,否则这里读不到列表:

机架号和插槽号要和 PLC 的设定一致(1500 是 0 / 1):

点 OK,再点 Start:

C# 通讯测试
用 S7.Net 连接本地网卡的 IP,读取正常:

完整代码见下一篇 用 S7.Net 读写 1500。
延伸
- 端口被占用:Start 后状态不是 Running 时,多半是 102 端口还被占着。
netstat -ano | findstr :102查是哪个进程,一般是s7oiehsx64.exe(S7DOS Help Service),在服务里停掉它。 - 连的是网卡 IP,不是 PLC 的 IP:上位机填的是步骤 5 里的 Network IP Address。只在本机测试的话,选
127.0.0.1也可以。 - 版本:NetToPLCsim 很久没更新了,在新版博图(V17 以后)的 PLCSIM 上可能用不了。新版本可以换成 PLCSIM Advanced。
原文首发于 blog.csdn.net