发布于 2005-09-02 10:51:01
0楼
间接寻址可以这样用:
LD SM0.0
MOVB *VD0, VB10
若 MOVD 16#08000064,VD0 (=MOVD &VB100,VD0)
那么 VB10=VB100
若 MOVD 16#08000050,VD0 (=MOVD &VB80,VD0)
那么 VB10=VB80
若 MOVD 16#00000000,VD0 (=MOVD &IB0,VD0)
那么 VB10=IB0
若 MOVD 16#01000000,VD0 (=MOVD &QB0,VD0)
那么 VB10=QB0
若 MOVD 16#02000000,VD0 (=MOVD &MB0,VD0)
那么 VB10=MB0
西门子(中国)自动化与驱动集团-应用实例-自由口模式下PLC与计算机的通信就是这样用的,而且用的很巧妙。
我对这个例子还有两个问题想请教
1 初始化子程序网络2中MOVB 16#EC,SMB87后又为何R SM87.2,1 ?不如直接MOVB 16#EB,SMB87.
2 在XMT前都有R SM87.7, 1 (发送前停止接收)
RCV VB100, 0
发送完成后S SM87.7, 1(允许口0进行接收)
为何不把RCV放在S SM87.7, 1后面呢?