- V20变频器带一个高惯性的搅拌机。 因为减速总是报过压,特意配了一个原装的制动单元和制动电阻(电阻阻值和功率都是严格按照手册选型的)。 参数也改了:P1240(直流母线电压控制器)设为了 0(关闭),
- 求助各位师傅:现场用富士 Alpha5 Smart 伺服走位置模式。 参数里设置了外部转矩限制功能。 在手动点动(JOG)或者用软件试运行的时候,转矩限制很正常,用力顶住机构,到设定的转矩(比如 5
- 精调求助:S120 驱动器,CU320-2PN 控制。轴走 EPOS 模式。 设置了主动回零,寻找参考点开关(接近开关)。 轴以 100mm/s 的速度往回走,当机械滑块刚刚压到接近开关(信号从 0
- 求助!200Smart PLC 走 Modbus RTU 控一台安川 V1000 变频器。 写入频率的寄存器地址是 0002H。 平时给它写 2500(对应 25.00Hz),运行都很正常。 偶尔(大
- 请教老师傅:富士 FRENIC-MEGA 变频器带一台永磁同步电机(矢量控制模式)。 工艺需要用到多段速:X1端子对应 15Hz,X2端子对应 45Hz。 单独跑 15Hz 或者单独跑 45Hz 的
求助:基恩士 VT5 系列触摸屏,连 KV-8000 PLC。 做了一个大配方功能,里面包含大约 200 个浮点数和字符串。 正常生产切换配方没事。但只要在‘设备正在运行(PLC 正在高速通讯)’的时
联系人:15619598932255
电话/手机:联系客服
发布时间:2026-06-02 18:32
浏览:148次



















































因为你已经看到:
PLC 其实已经收到新配方,也能继续跑。
所以真正卡住的不是“写入 PLC 数据区”,而是 VT5 在最后一步没有释放自己的配方进度窗口/操作线程。
我会这样判断:
99% 多半表示:配方数据主体已经写完,VT5 正在等待最后的完成确认、读回校验、文件状态更新、画面刷新恢复,或者某个完成位复位。
KEYENCE 官方 VT5 手册页也说明,VT5 用户手册包含功能、连接、错误码等内容,连接手册按设备分类;但公开网页里我没有找到“99%卡住”这个具体异常的公开说明,所以这里主要按 HMI 配方传输机制和现场现象推断。
最像的真实原因
你这个现象最像下面这一类:
生产运行中
PLC 和 HMI 正在高速通讯、画面刷新、数据采集
↓
操作员点“切换配方”
↓
VT5 开始批量写入 200 个浮点数 + 字符串
↓
PLC 已经收到配方数据
↓
VT5 最后一步要读回确认 / 等完成位 / 刷新配方状态
↓
但是这一步被运行中的通讯刷新、PLC 写回、脚本状态位、配方区被占用卡住
↓
进度条停在 99%,HMI 操作线程被锁住
所以它不是普通通讯慢,也不是 PLC 没收到,而是 HMI 的配方操作没有“正常收尾”。
一、为什么偏偏是 99%?
很多 HMI 的进度条不是精确表示每个字写了多少,而是大概分成:
0%~90%:写入配方数据
90%~99%:写入字符串/剩余数据/更新内部状态
99%~100%:等待完成确认、读回校验、关闭窗口、释放操作锁
所以卡在 99%,通常说明:
主体数据已经传输完成
但最后一个确认动作没有结束
常见就是:
完成位没回来
Busy 位没复位
读回校验不一致
某个字符串区写入后校验失败
HMI 的配方窗口还在等脚本返回
通信任务被周期刷新占满
二、最可疑:HMI 在“读回校验”,但 PLC 正在改同一片配方区
你说 PLC 后面已经收到新配方,还能继续跑,这里有一个大坑:
PLC 一收到新配方,马上把这些数据用于运行、修正、限幅、写回,结果 VT5 最后读回时发现和它写下去的不一样。
比如:
HMI 写入:
速度 = 123.456
PLC 程序运行中处理:
速度限制到 120.000
或者换算成内部单位
或者字符串补空格/清零
这时 HMI 最后一步可能在做:
写入完成 → 读回确认 → 数据一致 → 进度 100%
但 PLC 已经把值改了,VT5 就一直等不到“完全一致”的状态,于是卡 99%。
尤其你这里有 浮点数 + 字符串,更容易出问题:
浮点数:PLC 可能做限幅、四舍五入、单位换算
字符串:PLC 可能清尾、补零、移动、覆盖
三、第二个大坑:配方区和运行区混用了
很多项目直接这样做:
HMI 配方写入地址 = PLC 实际运行参数地址
这样正常停机切换没问题。
但设备运行中切换,就会出现争用:
HMI 正在写配方
PLC 正在读这些参数
PLC 还可能正在写这些参数
画面也在刷新这些参数
报警/趋势也在读这些参数
结果就是:
PLC 收到了
设备也跑了
但 HMI 配方功能自己的最后确认卡死
更稳的结构应该是:
HMI 配方下载区
↓
PLC 校验区
↓
PLC 确认允许后
↓
复制到运行参数区
不要让 HMI 直接写正在运行的参数区。
四、第三个大坑:完成握手位被 PLC 太快复位
如果你做了类似握手:
HMI 写配方完成
↓
HMI 置位 Recipe_Request
↓
PLC 收到后置位 Recipe_Done
↓
HMI 看到 Done 后结束
但 PLC 程序里如果这样写:
Recipe_Done 只亮一个扫描周期
HMI 可能刚好没读到。
尤其设备运行时通讯负载大,HMI 轮询周期变慢,PLC 的 Done 位一闪就没了。
于是 PLC 觉得“我已经处理完了”,HMI 却一直等 Done。
正确做法应该是:
HMI:Recipe_Request = 1
PLC:收到后处理
PLC:Recipe_Done = 1 并保持
HMI:看到 Done 后置位 Recipe_Ack = 1
PLC:看到 Ack 后清 Recipe_Done 和 Recipe_Request
HMI:清 Ack
也就是完整握手,不要用一拍脉冲。
五、第四个大坑:运行时画面对象还在疯狂刷新同一批地址
你说“PLC 正在高速通讯”,这个也很关键。
VT5 正在做大配方下载时,如果同一个画面上还有大量对象在刷新:
实时数值
报警
趋势
状态灯
按钮状态
字符串显示
配方当前值
而这些又和配方地址重叠,HMI 内部通讯任务可能出现:
批量写配方
周期读画面
脚本读写
报警读取
趋势记录
同时抢同一个连接。
通信周期调慢没效果,说明问题不一定是“周期太快”,而可能是 配方传输没有被做成独占操作。
六、建议你这样改,最稳
1. 禁止运行中直接切换配方
最简单、最安全:
设备运行中:
切换配方按钮灰掉
设备停止 / 暂停 / 安全位置:
允许切换配方
非标设备里,大配方不建议在运动或生产状态中直接切。
2. 配方先写入“下载缓冲区”
不要直接写运行参数。
结构改成:
HMI 配方区
↓
PLC DB_RecipeDownload 下载缓冲区
↓
PLC 校验
↓
PLC 一次性复制到 DB_RunParameter 运行参数区
这样 HMI 写配方时,PLC 不要改 DB_RecipeDownload。
3. 做完整握手
建议做 4 个位:
Recipe_Request HMI → PLC
Recipe_Busy PLC → HMI
Recipe_Done PLC → HMI
Recipe_Ack HMI → PLC
Recipe_Error PLC → HMI
流程:
1. HMI 写入配方到下载区
2. HMI 置位 Recipe_Request
3. PLC 置位 Recipe_Busy
4. PLC 校验数据
5. PLC 复制到运行区
6. PLC 复位 Busy,置位 Done
7. HMI 看到 Done 后关闭进度/提示完成,并置位 Ack
8. PLC 看到 Ack 后清 Done 和 Request
9. HMI 清 Ack
关键是:
Done 必须保持到 HMI 确认
不能只给一个扫描周期
4. 配方传输期间,屏蔽画面刷新和重复点击
点“切换配方”后立即:
禁用切换按钮
禁用保存按钮
禁用返回按钮
禁用再次加载
显示“配方下载中”
直到:
Recipe_Done = 1
或者 Recipe_Error = 1
或者超时
不要让操作员连续点两次,也不要让脚本重入。
5. 增加超时机制
HMI 和 PLC 都要有超时。
例如:
HMI 等待 PLC Done 超过 5 秒:
提示“配方确认超时,请停止设备后重试”
释放画面锁
PLC Busy 超过 5 秒:
清 Busy
置 Error
不更新运行参数
现在你最糟糕的问题不是配方失败,而是 HMI 画面锁死,只能断电。一定要加超时释放。
七、现场快速验证方法
你可以马上做 4 个测试。
测试 1:运行中切配方,但 PLC 不复制到运行区
临时让 PLC 只接收,不处理、不写回、不限幅。
如果 99% 不再卡:
PLC 后处理改写了配方区,导致 HMI 最后校验/确认过不去
测试 2:把配方写入一块完全没人用的新 DB
新建一块空闲区,只让 VT5 写,不让 PLC 运行逻辑读写。
如果不卡:
原配方区和运行逻辑/画面刷新冲突
测试 3:关闭当前画面上大量实时刷新对象
切到一个空白维护画面,只留一个“切换配方”按钮。
如果不卡:
画面周期刷新和配方批量写入抢通讯资源
测试 4:把 PLC 的 Done 位保持住,不要一拍复位
如果改成保持型 Done 后不卡:
HMI 卡在等待完成握手,原来 Done 位太短
八、最可能的答案
亲,这个问题我会优先判断为:
不是 KV-8000 没收到配方
不是 VT5 没把数据写完
也不是单纯通讯周期太快
而是:
VT5 在配方传输最后一步,需要完成确认、读回校验或释放配方窗口;
运行状态下 PLC/画面/脚本对同一片配方地址有读写竞争,
或者 PLC 的完成位太短,导致 VT5 最后一步等不到正确收尾信号。
一句话:
99% 等的不是“数据”,而是“收尾条件”。PLC 已经拿到配方,但 VT5 没拿到它想要的最后确认,所以屏幕被进度窗口锁住了。
最稳的整改是:
运行中禁止直接切换大配方
配方先写下载缓冲区
PLC 校验后再复制到运行区
Done 位保持到 HMI Ack
配方传输必须有超时释放
这样改完,就不会再出现“PLC 已经跑新配方,屏却卡死在 99%”这种尴尬问题。