y4620148
级别: 探索解密
精华主题: 0
发帖数量: 53 个
工控威望: 120 点
下载积分: 420 分
在线时间: 8(小时)
注册时间: 2020-11-07
最后登录: 2022-03-22
查看y4620148的 主题 / 回贴
楼主  发表于: 2022-03-15 14:25

就不知道程序改怎么写了,问问大佬们。

I0.0输入的时候,LB0指示灯亮

I0.1有信号,I0.2没信号,等待3S采集Q0.3,Q0.3有信号,LB1亮.

这个程序需要怎么写,这个延迟函数感觉放不进去啊


macro_command main()
bool i00,i01,i02,q03
GetData(i00, "Siemens S7-200 PPI", I, 0.0, 1)
GetData(i01, "Siemens S7-200 PPI", I, 0.1, 1)
GetData(i02, "Siemens S7-200 PPI", I, 0.2, 1)
GetData(q03, "Siemens S7-200 PPI", Q, 0.3, 1)
if i00==1 then
SetData(i00, "Local HMI", LB, 0, 1)
else if i00==0 then
SetData(i00, "Local HMI", LB, 0, 1)
end if

if i01==1 and i02==0 and DELAY(3000) q03==1 then
SetData(i01, "Local HMI", LB, 1, 1)
else if i01==0 then
SetData(i01, "Local HMI", LB, 1, 1)
end if
wwjfsk
级别: 探索解密
精华主题: 0
发帖数量: 73 个
工控威望: 191 点
下载积分: 935 分
在线时间: 440(小时)
注册时间: 2014-04-20
最后登录: 2024-12-22
查看wwjfsk的 主题 / 回贴
1楼  发表于: 2022-03-18 09:57
DELAY 不能放在条件上吧
macro_command main()
bool i[4],q03,off=false
GetData(i[3], "Siemens S7-200 PPI", I, 0.0, 3)
SetData(i[0], "Local HMI", LB, 0, 1)
if i[1]==1 and i[2]==0  then
DELAY(3000)
GetData(q03, "Siemens S7-200 PPI", Q, 0.3, 1)
if q03==1 then
SetData(i[1], "Local HMI", LB, 1, 1)
else
SetData(i[2], "Local HMI", LB, 1, 1)
end if
else
SetData(off, "Local HMI", LB, 1, 1)
end if
end macro_command
加勒比海带
级别: 论坛先锋
精华主题: 0
发帖数量: 2236 个
工控威望: 1837 点
下载积分: 6902 分
在线时间: 64(小时)
注册时间: 2021-07-19
最后登录: 2024-08-05
查看加勒比海带的 主题 / 回贴
2楼  发表于: 2022-04-06 14:01
谢谢!好东西!