产品中心
详细信息
6ES7455-1VS00-0AE0 6ES7455-1VS00-0AE0
实现构想:输出点不直接驱动Q点,先定义到的M点上,并建一个的地址设定变量,16位地址,其高位字节存放指向QB的地址偏移量,低位字节存放位号,比如要输出到Q1.3,地址设定为16#01 03 ,
把地址设定变量中的高位字节的地址偏移量转换成32位,和指向&QB0的地址指针相加,得到对应的QB地址;
将对应的QB字节(间接寻址 )(当前输出状态)传送到缓存字节中Out_B中,
将缓存字节Out_Bt循环右移,移动位数来自于地址设定变量中的低位字节。
根据输出点状态M点,输出到Out_B字节的第0位,LD M = Out_B.0
将缓存字节Out_B循环左移,移动位数来自于地址设定变量中的低位字节。
将缓存字节Out_B传送到对应的QB字节(间接寻址 )中。
程序和简单测试如下:
MAIN:
SBR0:
HMI仿真测试画面:
如果可以把子程序导出就好了。
例如下面这样:
SUBROUTINE_BLOCK 输出重定向:SBR4
TITLE=子程序注释
VAR_INPUT
控制点:BOOL;
目标字节:BYTE;
目标位:BYTE;
END_VAR
VAR_OUTPUT
出错:BOOL;
END_VAR
VAR
临B1:BYTE;
临D1:DWORD;