← 全部文章 工业通讯

西门子 PLC 通讯(三):用 NetToPLCsim 连普通 PLCSIM

2022 年 9 月 1 日 · 1 分钟读完

目录
  1. 使用步骤
  2. 1. 准备博图项目
  3. 2. 配置本地网卡
  4. 3. 以管理员身份启动 NetToPLCsim
  5. 4. 在博图里启动仿真并下载程序
  6. 5. 在 NetToPLCsim 里添加转发
  7. C# 通讯测试
  8. 延伸

测试西门子 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。

# 西门子 # PLC # 仿真

原文首发于 blog.csdn.net