PLC信号监控工具说明.md 6.2 KB

OP50 PLC 信号监控测试工具

功能说明

独立可运行的 S7-1200 信号监控工具,不依赖 MES 服务器连接,直连 PLC 读写 DB200 点位,用于现场调试和验证。


快速启动

方法1:IDE 运行

直接运行 com.mes.test.PlcSignalTest 的 main 方法

方法2:命令行

# 默认 IP: 192.168.1.1
java -cp <classpath> com.mes.test.PlcSignalTest

# 指定 IP
java -cp <classpath> com.mes.test.PlcSignalTest 192.168.1.100

界面布局

1. 连接控制区

  • PLC IP 输入框:默认 192.168.1.1,可修改
  • 连接/断开按钮:后台线程连接,不卡 UI
  • 连接状态灯:绿=已连接,灰=未连接
  • 显示设备型号:S7-1200 / DB200

2. 转台位置区(只读)

点位 含义 显示
DB200.156.3 A面到位传感器 绿点=到位,灰点=未到位
DB200.156.4 B面到位传感器 绿点=到位,灰点=未到位
推算当前面 根据传感器推算 A / B / --

验证方式:手动转动转台,观察灯变化和当前面显示


3. MES允许启动区(可读写)⚠️

点位 含义 操作
DB200.0.1 A面MES允许启动 置位 true / 复位 false
DB200.38.0 B面MES允许启动 置位 true / 复位 false

显示

  • 绿点 = true(PLC 启动按钮解锁)
  • 灰点 = false(PLC 启动按钮锁定)

写操作流程

  1. 点击「置位 true」或「复位 false」
  2. 弹出确认框(防止误操作)
  3. 确认后执行写入
  4. 日志区显示写入结果

现场验证步骤

1. 扫码完成后,正常流程应该看到 A面许可 = true(绿灯)
2. 此时观察 PLC 面板:A面启动按钮应该亮起/解锁
3. 手动点「复位 false」→ 启动按钮应该熄灭/锁定
4. 再点「置位 true」→ 启动按钮重新亮起

4. 焊接状态区(只读)

点位 含义 显示
DB200.34 A面状态(Int16) 数值 + 文字 + 状态灯
DB200.72 B面状态(Int16) 数值 + 文字 + 状态灯

状态含义

  • 0 空闲 — 灰灯
  • 1 运行中 — 黄灯
  • 2 完成 — 绿灯

应答清零按钮

  • 手动写 0 到状态地址,模拟 MES 应答 PLC
  • 点击前弹确认框
  • 正常流程:PLC 写 2(完成)→ MES 读到后应答写 0 → PLC 清除完成标志

验证步骤

1. PLC 焊接完成 → 状态变为 2(绿灯)
2. 等待 MES 自动应答(正常情况)
3. 如果测试手动应答:点「应答清零」→ 状态变回 0

5. 焊接参数区(只读)

表格显示 R1~R4 四个焊点的实时参数:

点位偏移 数据类型 说明
焊点 - - R1/R2/R3/R4
完成标志 76.1 / 96.2 / 116.2 / 136.2 Bool ● = true, ○ = false
序号 78 / 98 / 118 / 138 Int16 错误代码
电流 80 / 100 / 120 / 140 Float32 单位 A
电压 84 / 104 / 124 / 144 Float32 单位 V
送丝速度 88 / 108 / 128 / 148 Float32 m/min
焊接速度 92 / 112 / 132 / 152 Float32 mm/s

刷新频率:1 秒

验证步骤

1. PLC 启动焊接 → 状态变 1(运行中)
2. 观察表格实时更新电流/电压/速度
3. 焊接完成 → 完成标志变 ●(绿点)
4. 对比 PLC 触摸屏上的参数是否一致

6. 日志区

底部滚动文本框,记录:

  • 连接/断开事件
  • 所有写操作及结果
  • 读取异常(不中断轮询,仅记录)

格式:[HH:mm:ss] 消息内容


监控逻辑

轮询周期

  • 首次启动:0.5 秒
  • 正常运行:1 秒

读取失败处理

  • 不弹窗、不中断轮询
  • 对应显示 ---1
  • 静默记录到控制台(System.err)

写入失败处理

  • 弹窗提示错误信息
  • 日志区记录详细原因

常见问题

1. 连接失败

原因

  • IP 地址错误
  • PLC 未开机或网络不通
  • 防火墙拦截

解决

# 先 ping 测试
ping 192.168.1.1

# 检查网络配置
# S7-1200 默认端口:102(自动使用)

2. 完成标志地址疑问

当前代码中 R1 的完成标志是 DB200.76.1(位偏移 .1),而 R2~R4 是 .2

  • 如果现场验证不一致,修改 PlcSignalPanel.WELD_POINTS 数组
  • 地址格式:DB编号.字节偏移.位偏移

3. 参数显示异常

检查项

  • PLC 侧 DB200 是否允许外部读取(优化块访问属性)
  • 数据类型是否匹配(Bool/Int16/Float32)
  • 字节对齐(Float32 必须从偶数地址开始)

测试检查清单

基础连接

  • 能成功连接 PLC
  • 断开后所有显示变灰
  • 重新连接恢复正常

转台位置

  • 转台在 A 面 → A 灯绿,当前面显示 A
  • 转台在 B 面 → B 灯绿,当前面显示 B
  • 转台移动中 → 两灯都灰

MES许可信号

  • 置位 A 面 → PLC 启动按钮 A 解锁
  • 复位 A 面 → PLC 启动按钮 A 锁定
  • 置位 B 面 → PLC 启动按钮 B 解锁
  • 复位 B 面 → PLC 启动按钮 B 锁定

焊接状态

  • 启动前 → 0 空闲(灰灯)
  • 焊接中 → 1 运行中(黄灯)
  • 焊接完成 → 2 完成(绿灯)
  • 应答清零 → 状态变 0

焊接参数

  • 焊接中参数实时更新(1秒刷新)
  • 完成标志正确显示 ●/○
  • 数值与 PLC 触摸屏一致

注意事项

⚠️ 写操作影响真实 PLC

  • 所有写操作都有确认弹窗
  • 误操作可能导致设备异常启动
  • 建议在非生产时段测试

⚠️ 不替代正式 MES 客户端

  • 仅用于调试和信号验证
  • 不记录数据到 MES 服务器
  • 不保存焊接参数到 SQLite

⚠️ 网络安全

  • 测试工具直连 PLC,绕过 MES 权限控制
  • 不要在生产环境长期运行
  • 使用完毕断开连接

文件位置

src/
├── com/mes/test/
│   └── PlcSignalTest.java          # 测试入口(main)
└── com/mes/ui/
    └── PlcSignalPanel.java         # 监控面板实现

依赖库

与正式客户端相同:

  • iot-communication.jar — S7 PLC 通信库
  • Swing(JDK 自带)

技术支持

问题反馈:检查日志区输出,记录具体错误信息