登录
首页 人机界面 人机界面
回帖 发帖
正文

主题:威纶宏写法,哪位大侠帮我看看正确吗?

点击:2000 回复:19

设置了,除了IF语句里的代码不知道,其他的都执行的
18-01-08 16:34
D和E应该定义为BOOL型,并且赋值true和false~~
18-01-08 16:38
我需要的是0.1数值,不是布尔型
18-01-08 16:43
那你是不是想控制Y1?D和E你定义为int型,而Y是bool型。。
18-01-08 16:49
你直接把IF后面的判断直接写个TRUE,强制执行看看什么情况?如果执行了,说明你这个IF后面的罗辑有问题,这样范围缩小了
18-01-08 18:02
威纶的宏怎么和C扯上了。
18-04-03 21:39

引用 565124983 在 2018/1/6 20:26:47 发言【内容省略】

只看到宏里面的C变量没有初始化。
如果C开始是0的话建议还是需要显式初始化的。
最后修改:2018/4/3 21:50:24
18-04-03 21:50

引用 xiatianyun 在 2018/4/3 21:39:25 发言【内容省略】

我不好回答,宏是给你调用的,什么条件调用你得处理吧,我可以用维纶的屏带一块支持485的继电器板子干活,逻辑就在屏里写,数据处理也在屏里,你信不?
18-04-04 08:59

引用 xiatianyun 在 2018/4/3 21:39:25 发言【内容省略】

大兄弟,和C没关系我给你说错了,这是一小段,有删减勿用,最长的有1300多行的,能用和用好是两个概念,继续努力吧。
short brsjh
short brsjm
short brsjh1
short brsjm1
bool brsjh1bz
GetData(brsjh, "Local HMI", LW, 9019, 1)
GetData(brsjh1, "Local HMI", RW, 10, 1)
GetData(brsjm1, "Local HMI", RW, 12, 1)
GetData(brsjsdm1, "Local HMI", RW, 16, 1)
if (brsjh1    if (brsjh1<=brsjh) & (brsjh<=brsjsdh1) then
   brsjh1bz1=1
      if (brsjh==brsjh1) & (brsjm==brsjm1) then
          brsjh1bz=1
             SetData(brsjh1bz, "Local HMI", LB, 187, 1)
       end if
      if (brsjh==brsjsdh1) & (brsjm==brsjsdm1) then
          brsjh1bz=0
             SetData(brsjh1bz, "Local HMI", LB, 187, 1)
       end if
    end if
end if
18-04-04 12:44
呵呵,杠上了。
我说的是上一贴关于花括号的说法,威伦通的宏有点类似于Pascal的语法,和C不太像。
确实,逻辑可以在触摸屏实现,没什么不好的。
最后修改:2018/4/4 16:51:48
18-04-04 16:50

上一页 上一页

工控新闻

更多新闻资讯