中文版 | English

网站首页 | 个人作品 | 博客 | 给我留言 | 经典分享 | 友情链接 | 黑白人生


西门子PLC学习一

西门子PLC基础:
通讯:
NETWORK 1 // 主程序
LD SM0.1 // 首次扫描时,
MOVB 16#09 SMB30 // 初始化自由端口:
// - 数据存放格式应该是00001001
// - 选择9600波特
// - 选择8个数据位
// - 选择无校验
MOVB 16#B0 SMB87 // 初始化RCV信息控制字节:
// - RCV被启用
// - 检测到信息字符结束
// - 将空闲行条件检测为
// 信息开始条件。

MOVB 16#0A SMB89 // 将信息字符结束设为hex OA(换行符)。
MOVW +5 SMW90 // 将空闲行超时设为5毫秒。
MOVB 100 SMB94 // 将最大字符数设为100。
ATCH INT_0 23 // 将中断附加在接收完成事件上。
ATCH INT_2 9 // 将中断2附加在传送完成事件上。
ENI // 启用用户中断
RCV VB100 0 // 为端口0在VB100位置启用带缓冲区的接收方框

NETWORK 1 // 中断0
// 接收完成中断例行程序
LDB= SMB86 16#20 // 如果接收状态显示接收结束字符,
MOVB 10 SMB34 // 则附加一个10毫秒计时器,
ATCH INT_1 10 // 触发传送

CRETI // 并返回。

NOT
RCV VB100 0 // 如果因任何其他原因接收完成,
// 则开始新的接收。

 

NETWORK 1 // 中断1
// 10毫秒计时器中断
LD SM0.0
DTCH 10 // 分离计时器中断
XMT VB100 0 // 将信息传送回端口0中的用户

 

另请参阅:
SMB30和SMB130自由端口通讯
SMB86-SMB94和SMB186-SMB194接收信息控制 SMB2接收字符缓冲区(自由端口)
SMB3接收优先级别错误(自由端口)
SMB4队列溢出(中断)

上一篇: 剑侠梦[转]
下一篇: 驾照终于考过了