L B#16#7E
L #DS_NR
SLW 8
OW
SLD 16
L #FC_DATA_LEN
OD
T PQD [AR1,P#4.0]
slw , ow, sld ,od 这表达的是什么意思呢?如何理解这程序呢?
L 250
STRT: T #LOOP_COUNT
L PID [AR1,P#4.0]
T #TEMP_DATA
SRD 16
SRW 1
JZ VAL
这段又如何理解呢?没见过SRD SRW jz这些符号啊,理解不了
产品版区:SIMATIC S7-300(F)/S7-400(F/H/FH)
悬赏分:10 | 解决时间:2009-07-23 10:37:52 | 提问者: 国大阿四分地 -
最佳答案
SRD SRW jz:
这都是STL指令。
L 250//
STRT: T #LOOP_COUNT//将常数250送人 #LOOP_COUNT中
L PID [AR1,P#4.0]//变址寄存器AR1中的内容再加上4的那一PID外围通道中的输入送到累加器1中。
T #TEMP_DATA//将累加器1中的内容送人#TEMP_DATA中
SRD 16//将累加器1中32位右移16位,空出的位添0。
SRW 1//将累加器1低16位右移1位,空出的位添0。
JZ VAL//运算结果为0跳转
详见《语句表(STL)编程手册》下载:
http://www.gongkong.com/webpage/datum/200906/2009061014302600010.htm
回答者:
阿鸣
-
大师  第17级
2009-07-22 13:59:48
提问者对于答案的评价:
谢谢
L B#16#7E
L #DS_NR
SLW 8 //把#DS_NR的内容左移8位,也即是*256
OW //#DS_NR*256和7E或运算
SLD 16//运算结果左移16位
L #FC_DATA_LEN
OD //#FC_DATA_LEN和运输结果与运算
T PQD [AR1,P#4.0]//最终结果存到AR1,P#4.0指定的PQD区
看你的情况,主要是对slw , ow, sld ,od 这些指令不熟悉造成。看看STEP7 s300/400 STL编程手册,把对应的指令看明白就好了。
顺便说一下,slw , ow, sld ,od 分别是字左移,字或,双字左移,双字或;
SRD SRW jz分别为双字右移,字右移,(根据CC1,CC0中结果)若为零,则跳转到指定的标识区,这里即VAL
回答者: 依然 - 中级工程师  第10级
2009-07-22 13:26:36
指令手册你快看看吧
回答者: cgmgxp - 初级技术员  第5级
2009-07-23 10:21:13
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!