您的位置:控制工程论坛网论坛 » 自动化软件 » 300 的 L 指令

luckynf

luckynf   |   当前状态:在线

总积分:915  2024年可用积分:0

注册时间: 2008-09-19

最后登录时间: 2023-08-24

空间 发短消息加为好友

300 的 L 指令

luckynf  发表于 2022/9/20 17:19:03      855 查看 4 回复  [上一主题]  [下一主题]

手机阅读

问:L 指令装一个立即数(常数)到 ACCU1L 1
如何表达我这个装入的数是 Byte? Word? DWord? S7300 还未入门,请高手指教!
答:在装入的时候,如果被装入的数太短,达不到 4BYTE(大多情况这样),则在装入的 时候,会自动填 0而在取出的时候,如果目标是 4BYTE,则全盘复制,如果短了,就只复制需要的长度,另外的就被抛弃了,其实被抛弃的部分一般是 0 的,编程时候需要知道的。 比如 L L#16#01020304,这是一个 32 位的 DWORD然后 T MW0,长出的部分被丢掉,最终 MW0 的内容为 16#0304 除非有意这样做,否则做之前是要保证数据没有溢出的。否则计算就乱套了。 反过来,L 16#FFFE (INT -2)T MD0则 MD0 的值为 L#16#0000FFFE (DINT 65534) 数据虽然没有溢出,但数据格式不能继承了。 这种时候,分别需要 DTI 和 ITD 命令进行转换。
至于 200 里面的 MOVB,MOVW,MOVD 等的命令,我想,在 300 里面它是自动的,根据目 标数的尺寸,自动实现不同的 MOVE 功能,与 200 对应。

1楼 0 0 回复
总共 , 当前 /