// 主程序
网络1:
LD SM0.1 // 首次扫描时,
MOVB 16#09, SMB30 // 初始化自由端口:
// - 选择9600波特
// - 选择8个数据位
// - 选择无校验
MOVB 16#B0, SMB87 // 初始化RCV信息控制字节:
// - RCV被启用
// - 检测到信息字符结束
// - 将空闲行条件检测为
// 信息开始条件。
MOVB 16#EE, SMB89 // 将信息字符结束设为hex EE (接收后首字符存在VB5200 尾字符存在VB5231么?
MOVW +5, SMW90 // 将空闲行超时设为5毫秒。
MOVB 32, SMB94 // 将最大字符数设为32。
ATCH INT_10:INT10, 23 // 将中断附加在接收完成事件上。
ATCH INT_12:INT12, 9 // 将中断2附加在传送完成事件上。
ENI // 启用用户中断
RCV VB5199, 0 // 为端口0在VB5199位置启用带缓
//冲区的接收服务
MOVB 150, VB4999 //发送数据长度
网络2: !!!注意以下网络定义是否正确
LD Always_On:SM0.0
MOVB 16#0A, VB5000 //设定发送数据首字符
AENO
MOVB 16#0E, VB5149 //设定发送数据尾字符
//中断
INT10:
MOVB 150, VB4999
LDB= SMB86, 16#20 // 如果接收状态显示接收结束字符,
MOVB 10, SMB34 // 则附加一个10毫秒计时器,(10毫秒发送一次么)
ATCH INT_11:INT11, 10 // 触发传送
CRETI // 并返回。
NOT
RCV VB5199, 0 // 如果因任何其他原因接收完成,
// 则开始新的接收。
INT11:
LD SM0.0
DTCH 10 // 分离计时器中断
LD SM0.5 !!!!(可以在这前面加上LD SM0.5么?)
XMT VB4999, 0 // 将信息传送端口0中的用户
INT12:
LD SM0.0
RCV VB5199, 0 //准备接收