恭喜,你发布的帖子
发布于 2020-03-26 01:33:25
7楼
根据三台搅拌设备的运行状态(搅拌FB的状态反馈信号,是否使用中)向三个连续的不同的位赋值,如1号对应写0位,2号对应写1位,3号对应写2位,以包含此三位的字节值或者字值作为总状态字节或者状态字。
利用一个输出范围为1~3(共3台搅拌设备)的随机数发生器(西门子通用库LGF中有此FC),使用上述状态字值分别穷举(此处比较暴力)从0到7的8种情况(0值对应无设备使用中,7值对应3台设备全部使用中,二进制位权,8421)结合条件表达式(如为0值时,则输出的任意在1~3之间的随机值都是合法有效值),
伪代码:
if statusWord = 0 then//3台设备都未使用
mixID := randomRetVal;//随机数FC生成的1~3之间的任意数
end_if;
... ...
if statusWord = 7 then//3台设备全部使用中
;//执行空指令
end_if;
得到合法的随机值,将此随机值按分别等于1,2,3的比较触点,赋予搅拌设备FB接口的start管脚,作为执行1,2,3搅拌设备FB的条件,二级搅拌FB块“mixingEquipment”在总功能块“tank"中作为多重背景使用,至此完成项目要求。
请填写推广理由:
分享
只看
楼主