macro_command main()
short c[6]
GetData(c[0], "本机 触摸屏", LW, 276, 1)
GetData(c[1], "本机 触摸屏", LW, 9019, 1)
GetData(c[2], "本机 触摸屏", RW, 1000, 1)
c[3]=c[0]*10
if c[1]<=3 and c[0]>1 then
c[5]=c[3]-10+1500+c[2]
else if c[1]<18 then
c[5]=c[3]+c[2]+1000
else
c[5]=c[3]+1500+c[2]
end if
c[4]=c[5]-10
SetData(c[5], "本机 触摸屏", RW, 1001, 1)
SetData(c[4], "本机 触摸屏", LW, 9200, 1)
end macro_command
以前的计数程序是在三菱PLC上的,因为D数据不够用现在把程序转到屏上,有些指令不会
大神帮忙一下
第一个问题:比如有个计数按钮LB100 ,上升沿触发宏指令要使地址为RW C[5]里的数据加1
第二个问题:条件跳转。上面程序读取个C[6]变量如果数据小于5跳转到第50条,大于5跳转到80条,没有的话我就用子程序重新编,
第三个问题:计算,
要把RW1011到RW1019里的数据相加写到RW1010或者RW1020都可以,一共31组
直到RW1311到RW1319,中间两位是日期就是把当天的计数合计
-
-
-
hypermill9 | 当前状态:在线
总积分:7709 2024年可用积分:0
注册时间: 2007-02-07
最后登录时间: 2023-08-18
-
hypermill9 发表于 2018/3/20 20:17:00
这个实现起来应该不太难,只是的写的代码里边没有注释。不太容易一下子看得明白。
第一个问题:比如有个计数按钮LB100 ,上升沿触发宏指令要使地址为RW C[5]里的数据加1 --------》这个自加一很容易实现的。肯定需要Gata获取并自定义变量方便计算使用。
第二个问题:条件跳转。上面程序读取个C[6]变量如果数据小于5跳转到第50条,大于5跳转到80条,没有的话我就用子程序重新编,
-----------》这个跳转的要求,没看明白跳转执行的软元件是哪一个?什么叫50条?什么叫80条?不太懂表达的什么意思
第三个问题:计算,
要把RW1011到RW1019里的数据相加写到RW1010或者RW1020都可以,一共31组
直到RW1311到RW1319,中间两位是日期就是把当天的计数合计
------》 这个思路流程图理清楚了,也不算太难吧。Rw1011到Rw1019应该是9个数值相加把结果保存在rw1010里边。 这都不算太难的事 。
其实你能写出来这些代码,我觉得你说的问题都不是问题的。
引用 hypermill9 2018/3/20 20:17:00 发表于2楼的内容
-
-
引用 ababab 2018/3/21 19:49:49 发表于3楼的内容
-
-
zhanghe 发表于 2018/3/22 10:54:34
第一问:RW C[5] 这个加1后,后面加一条LB100 =0
第二问:建议用调用子程序的方式吧,类似goto的指令并不稳定。
第三问:这个不难,直接加吧。
引用 zhanghe 2018/3/22 10:54:34 发表于4楼的内容