登录
首页 PLC论坛 三菱Mitsubishi
回帖 发帖
正文

主题:在三菱st中怎么完成死循环

点击:1568 回复:5

楼主
如题 我想在这个循环中一直运行 为什么报错呢 ??
附件 Snap7.jpg
20-02-11 17:57

引用 527383814 在 2020/2/11 17:57:59 发言【内容省略】

本身主程序就是循环执行,加上While TRUE不就是脱裤子了么。
由于WHILE循环的存在,导致主程序无法结束当前扫描周期,从而使得循环超时,导致看门狗故障。
建议初学者看一下PLC基础,然后再动手。
Good Luck~
20-02-11 18:55
我想尽量往单片机编程思维去写程序
20-02-11 19:12

引用 527383814 在 2020/2/11 19:12:46 发言【内容省略】

初学者都是这个样子的,喜欢生搬硬套。
例如,很多单片机程序员转过来都是这个样子,其实是他们在单片机领域也没有学透,你看到过单片机高手不看芯片手册的有吗。
Good Luck~
20-02-11 19:16
你说的单片机是裸机,所有的事情都要你管理,所以连从头再来都要你用死循环或者goto到开始.
即使是这样,你也应该知道,单片机有个防止跑飞的,watchdog.跑飞了就是在别的无用的程序那死循环了,回不到你有用的程序.这时候看门狗会把跑飞的程序拉回来,同时会发送看门狗的报错或者中断.
如果不引起看门狗,你需要在每次循环适当的地方(比看门狗时间短),清除看门狗计时.
---------------------所以,PLC一样.你想往单片机编程也是可以的.所有的处理器都一个道理.
然后,再说说PLC.PLC和其它单片机,本身有个管理的基础,或固件,如同操作系统.PLC的"操作系统"对输入输出,需要执行的程序,会进行管理.最简单的,它分配顺序,比如先输入再程序再输出.然后,它还会管理程序怎么执行.至少现在有几种程序执行方式,最早的就是你说的死循环,叫循环执行或者扫描.同样还有如同单片机的中断执行.比单片机高级的定时执行.当然会不会还有如同pc的分时间片执行,我还不知道.但还有一种叫分流水线执行,这个不详细说.
至少,plc的"操作系统"是会"输入-你的程序-输出",然后再"输入-你的程序-输出"这样循环执行的,循环是自动或者有专门的块或定义的被管理的,你不要操心.当然,在定义循环的时候,有个循环时间的限制,就是看门狗时间.任何一个程序,不允许你有意(自己做的死循环)或者无意(单片机跑飞,一般plc不存在这个问题)无休止地不受控制.
最后修改:2020/2/12 8:44:44
20-02-12 08:44

引用 527383814 在 2020/2/11 19:12:46 发言【内容省略】

单片机编程思维具体是怎样的?
20-02-13 17:22

工控新闻

更多新闻资讯