恭喜,你发布的帖子
发布于 2023-10-26 10:34:38
4楼
L 3000 装载常数3000到累加器1(ac1)
L DINO 累加器1中的值复制到累加器2(ac2)中装载变量DINO的值到累加器1(ac1)
T LW 0 累加器1(ac1)的值保存到LW0:LW0=DINO,释放累加器1,累加器2的值恢复到累加器1.ac1=3000
L #IN1 累加器1的值保存到累加器2,IN1装载到累加器1
T LW 2 LW2=IN1,累加器1释放,累加器2中的值保存到累加器1,ac1=3000
OPN DB [LW 0] 打开LW0中值对应的数据块,
L #IN0
T LW 8 LW8=IN0
+ 8
T LW 10 LW10=LW8+8
L W#16#4000
L #IO9
*D
L #IN2
/D
L #IN3
*D
L 1000
/D
T #STAT13 stat13=16#40000*IO9/IN2*IN3/1000
L W#16#47E
T LW 4 LW4=16#47E
A #IN4
A #OUT8
= L 5.0 L5.0=IN4 and OUT8
A #IN5
= L 5.7 L5.7=IN5
L LW 4
T #STAT12 Stat12=LW4
L #STAT12
T LW 14 LW14=stat12
L #STAT13
T LW 16 lw16=stat13
L #STAT14
T LW 18 lw18=stat14
L #STAT15
T LW 20 LW20=stat15
L #STAT16
T LW 22 LW22=stat16
L #STAT17
T LW 24 lw24=stat17
CALL "DPWR_DAT" 调用写从站地址程序块
LADDR :=LW10 写入地址从LW10开始
RECORD :=P#L 14.0 BYTE 12 写入数据为从L14.0开始的12个字节
RET_VAL:=LW12 写入状态码
CALL "DPRD_DAT" 调用读取从站数据程序块
LADDR :=LW10 从LW10对应的地址开始读取
RET_VAL:=LW12 读取状态码
RECORD :=P#L 26.0 BYTE 12 读取的数据保存到L26.0开始的12个字节中
L LW 12
L 0
<>I
S #STAT24 如果LW12<>0,置位stat24
==I
A #IN5 如果in5为1,复位stat24
R #STAT24
L LW 26
T #STAT18 STAT18=LW26
L LW 28
T #STAT19 STAT19=LW28
L LW 30
T #STAT20 STAT20=LW30
L LW 32
T #STAT21 STAT21=LW32
L LW 34
T #STAT22 STAT22=LW34
L LW 36
T #STAT23 STAT23=LW36
L #STAT19
L #IN2
*D
L W#16#4000
/D
L 1000
*D
L #IN3
/D
AN #STAT24
JC M001
L 0
M001: T #IO10 如果stat24=0,则IO10=stat19*IN2/16#4000*1000/IN3,否则IO10=0
L #STAT20
L 1000
*D
L W#16#4000
/D
AN #STAT24
JC M002
L 0
M002: T #STAT25 如果stat24=0,则stat25=stat20*1000/16#4000,否则stat25=0
L 0
L #STAT21
<I
JC M003
NEGI
M003: L 1200
*D
L W#16#4000
/D
AN #STAT24
JC M004
L 0
M004: T #IO11 如果stat24=0,则IO11=abs(stat21)*1200/16#4000,否则IO11=0
L #STAT18
T LW 4 LW4=stat18
A L 5.0
AN L 5.3
AN #STAT24
= #OUT8 如果L5.0为1且L5.3为0且stat24为0,则out8为1,否则out=0
AN L 5.3
AN #STAT24
= #OUT7 如果L5.3为0且stat24为0则out7为1否则out7为0
L #STAT25
L 50
>I
AN #STAT24
= #OUT6 如果stat25大于50且stat24为0则out6为1,否则out6为0
请填写推广理由:
分享
只看
楼主