今天写一台设备,想用ST写,写着写着发现有点不对,调试不正常,就有了一个帖子,
想法很美好,想着CASE数值变化一次,延迟一个时间,下一步才可以继续运行,但是,根据PLC扫描原理从上到下扫描,结果就是,vi_Step从0直接跑到40,一个扫描周期就跑完了,定时器还没来得及复位就OVER了
case 里面嵌套定时器也麻烦,下面还要给上面定时器复位,多写几行,人都要整崩溃了,具体定时器原理也就不研究了,各种品牌有点小区别;
问AI,给你整一堆代码,头晕眼花~
测试原始程序:<测试>
TONR(IN := vi_Step= vi_StepTemp,PT := 1000,Q =>vt_ );
vi_StepTemp:=vi_Step;
CASE vi_Step OF
0://初始待机
vi_Step:=10;
10:
vb_[0]:=true;
if vt_ THEN
vi_Step:=20;
end_if;
20:
vb_[1]:=true;
if vt_ THEN
vi_Step:=30;
end_if;
30:
vb_[2]:=true;
if vt_ THEN
vi_Step:=40;
end_if;
40://清除VB_W数组
vb_:=vb_temp;
if vt_ THEN
vi_Step:=0;
end_if;
END_CASE;
~~~~~~~~~~~
上菜:GIF;
下面步骤要如果用定时器.q的时候,上面一步强制定时器.q=FALSEL;
仅限汇川EASY,H5U,其他品牌PLC自行研究
全文完!
