发布于 2010-05-07 21:38:26
2楼
通讯接收字符缓冲器SMB2用于存放在自由口通讯方式下接收到的当前字符,它是一个暂存寄存器,一般应在下一步取走其中的内容。
以下为PLC接收部分程序片段:
LD SM0.1 //第一个扫描周期接通
MOVB 9, SMB30 //初始化port0口
ATCH INT_0, 8 //指定port0口接收事件由中断0处理
MOVD &VB101, VD96 //指针VD96指向VB101开始的V寄存器区
MOVD &VB0, VD36 //VD36也指向VB101开始的V寄存器区
MOVB 0, VB41 //接收字符个数清0
下面为中断0片段(接收并存储):
LD SM0.0 //一直接通
MOVB SMB2, *VD36 //只要接收到字符就存入指针VD36所指向的区域,
//即VB101开始的V寄存器区
INCD VD36 //指针下移,为接收并存储下一字符作准备
INCB VB41 //字符计数个数加一
当PLC需要向PC传送数据时,可以通过以下代码实现:
PLC发送部分程序片段:
LD SM0.1 //第一个扫描周期接通
MOVB 9, SMB130 //初始化port1口
MOVB 14, VB100 //将14存入VB100中
XMT VB100,1 //指定port1口发送自VB101开始的V寄存器区,
//发送字符个数由VB100的内容决定
美哉德乎!姚姚者乎