一个简单实用的通讯程序

已锁定

Laohuai

  • 帖子

    6225
  • 精华

    18
  • 被关注

    69

论坛等级:至圣

注册时间:2004-10-11

白金 白金 如何晋级?

一个简单实用的通讯程序

27175

55

2009-12-24 21:31:22

star
发一个通用的通讯程序:

MAIN:
LD SM0.1
MOVB XXX , SMB30 //根据和对方约定的波特率,字符格式等设定
MOVB 16#9C, SMB87 //允许接收信息,使用SMB90值检察空闲状态,定时器是信息定时器 , 超过SMW92值停止接收
MOVW +80, SMW92 //根据报文长短,波特率及从站响应的快慢设定,这个时间要小于接收中断(INT3)里定时中断的时间。
MOVW +0, SMW90
MOVB 200, SMB94 //SMW94 最大接收字符数,这里无用,但必须要设置。
ENI

LD SM0.1
ATCH 接收:INT3, 9 //传输完成中断
MOVB 150, SMB34
ATCH 发送:INT2, 10 //定时中断

发送:
LD SM0.0
DTCH 10
XMT VB100, 0

接收:
LD SM0.0
RCV VB200, 0
MOVB 250, SMB34
ATCH 发送:INT2, 10

1 本程序只适用于单从站的问答式规约(包括modbus)。该程序为主站程序。
2 发送的数据放置在数据块,比如读取从站地址为16#12的寄存器的数据。校验提前算好,减轻PLC负担。
VB100 16#8 16#12 16#03 16#00 16#0A 16#00 16#02 16#E6 16#AA
3 不用考虑起始字符 结束字符等等,以下是通讯流程图,不论从站有无故障,询问不受影响。

4 9600波特率,从站回复13字节

5 校验程序可以放在主程序里,

有时间再发一个多从站的程序,程序大小和这个基本程序不变。
一个简单实用的通讯程序 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33072条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。