初始化与事件绑定
该案例按“模型事件写请求/反馈 → PLC 更新输出 → 调用一次 PLC扫描 → 改变模型属性”执行。原脚本明确要求不创建周期扫描任务。
核对绑定
| 操作位置 | 应检查的脚本或字段 | 预期与证据范围 |
|---|---|---|
| 场景初始化脚本组 | 启动外部PLC → PLC初始化 | 原场景脚本文本已确认此调用关系 |
| PLC演示起点 的 InCtrl | PLC请求首段 | 静态属性已返回此绑定;生成物料时写首段请求 |
| 输送线252/251/250 的末端事件 | PLC输送到位 | 脚本按当前对象名称分支;完整末端槽位绑定尚需编辑器回读,不自动推断槽名 |
| PLC初始化 脚本内的堆垛机绑定 | PickFinishCtrl = &PLC货叉收回 | 原初始化代码显式赋值;取货完成反馈 |
| 同上 | PutFinishCtrl = &PLC堆垛机到位 | 放货完成后写行走/升降到位 |
| 同上 | TaskFinishCtrl = &PLC任务完成 | 清到位、有货反馈并累计完成数 |
| 场景结束脚本组 | 停止外部PLC → PLC停机 | 文本已确认;界面何种停止动作触发结束脚本还需实测 |
&脚本名 是把脚本对象绑定给回调,单独脚本名表示执行脚本。? 为当前执行对象,@ 为当前对象的 Cont;无载荷时不能假定 @ 非空。
初始化预期
PLC初始化 开启日志,将 PLC_TaskCount、PLC_CompletedCount 清零,PLC_LastCommand 清空,PLC_Error=false;停止三段输送线,配置堆垛机三个回调,注册点位,然后连接并尝试复位请求与反馈,最后断开。
初始化连接失败时会记录异常并返回;不要继续把它当作成功初始化。已打印的复位消息也要结合 PLC 侧读回判定。
单次扫描预期
PLC扫描 顺序读取三个正转点位。任一返回 null 就进入异常处理;读到 false 与读失败不是一回事。只有命令组合变化才更新 Stopped 和日志,减少无意义重复处理。
扫描异常时停止三段输送线、设置 PLC_Error、清空 PLC_LastCommand,并在起点 Description 写入错误;finally 断开。下一次恢复仍依赖后续明确触发的模型事件,不能假设自动定时重试。
下一步:复验一次完整入库。