回复:modbus库如何实现s7-200的一个口和两种不同通信参数的从站仪表通信?

lxw

西门子1847工业学习平台

  • 帖子

    43
  • 精华

    0
  • 被关注

    2

论坛等级:游民

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2010-05-26 00:45:43

10楼

quote:以下是引用LaoHuai在2010-05-25 23:12:30的发言:
其实很简单,假如2个从站,一个偶校验,一个无校验。

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

LD SM0.1
ATCH RCV1:INT1, 9 //传输完成中断
MOVB 150, SMB34
ATCH XMT1:INT0, 10 //定时中断

XMT1:
LD SM0.0
DTCH 10
XMT VB100, 0

RCV1:
LD SM0.0
RCV VB200, 0
MOVB 250, SMB34
ATCH XMT2:INT2, 10
MOVB 73, SMB30 //9600BPS,偶校验,每个字符8位数据

XMT2:
LD SM0.0
ATCH RCV2:INT3, 9
DTCH 10
XMT VB300, 0

RCV2:
LD SM0.0
RCV VB400, 0
MOVB 250, SMB34
ATCH XMT1:INT0, 10
MOVB 9, SMB30 //9600BPS,无校验,每个字符8位数据

1 如果从站比较多,就不用太多中断,2个就够了,做2个指针,发送一个指针,接收一个指针。这样做的好处在于,从站再多,程序大小不变。

2 不论对单个变频器写,还是广播方式,写和读的过程是一样的。如果需要闭环控制,控制程序放在主程序里。

3 将SMW92和SMB34的值减小到一个合适的值,可以使通讯效率达到最佳。

4 用modbus库做至少需要2000字节程序,这样做大大节省程序空间。

谢谢LaoHuai老师的大力帮助和无私奉献,程序我收藏了,得好好学习一下,因为都是modbus协议,是否还得要crc校验子程序,那个校验程序倒是下过,如果时间紧的话,变频器只能走模拟量了。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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