说说西门子200smart modbus自由口通讯的那些事13

已锁定

WWCWWC

西门子1847工业学习平台

  • 帖子

    7980
  • 精华

    145
  • 被关注

    1328

论坛等级:至圣

注册时间:2008-07-26

钻石 钻石 如何晋级?

说说西门子200smart modbus自由口通讯的那些事13

2939

8

2017-01-24 11:55:28

说说西门子200smart modbus自由口通讯的那些事13

   上文说到SMB94接收最大字符数在编辑自由口通讯时的一些注意事项,该字节是自由口通讯接收指令RCV调用时必须填写的项目内容之一。这次来说说接收完成标志字节SMB2的一些应用,个人观点:“虽然这个无条件接收的标志字节在编辑自由口通讯时比较少的应用,一般应用在比较特殊的状态下,如、无法找出合适是接收条件,其中消息字符中存在多个起始符、结束符等,但只要掌握了其中的一些特征,接收应用也是可以实现的”。

   假设、我利用串口调试软件发送一串 “modbus test”,11字符的消息,并设置串口调试软件为自动发送模式,间隔周期时间设置为0.000001mS,目的是实现相对一个连续的发送模式环境,让200 smart PLC在以VB0开始的连续11个字节中接收消息。

编程思路:

1)  定义通讯控制字节SMB30 = 16#09

2)  启用指针起始地址&VB0

3)  连接字符接收完成中断,中断事件号8(prot0口)

4)  开中断

5)  在接收中断中编辑由串口调试软件发送过来的消息控制程序

6)  初始化一些相关的数据

因为,字符接收标志字符SMB2是一个具备无条件接收消息的特征,所以,在字符接收中断中需要引入一个人为判断消息接收起始的比较程序。在实例工程应用时,还需要加入CRC等校验程序加以判断接收消息的正确性。

程序:

初始化子程序:


主程序调用初始化子程序及控制位初始化,图示:


字符接收中断控制程序:


连接PLC电源及相关通讯电缆线。

打开串口调试软件,设置通讯参数与SMB30一致,在发送编辑区编辑“modbus test”字符,选择自动发送模式,设置发送周期时间0.000001mS,启动发送消息;将程序编译、保存、下载到cpu中,并启动cpu运行。

打开“状态图表”,监控程序运行情况,图示:


从“状态图表”中可以看到串口调试软件发送的消息字符被200 smart PLC所接收到。重新修改串口调试软件的发送周期时间间隔为10mS,看“状态图表”显示,图示:


由此,可以确定修改串口调试软件自动发送消息的时间间隔,200 smart PLC仍然可以正确接收。原因是加入了消息的起始判断条件,能够把消息按编程思路正确地引入设置好的指针地址区中。

小结:

自由口通讯中的无条件接收标志字节SMB2,和字符接收中断事件号8(prot1字符接收中断事件号25),用户只要掌握了它的一些功能性特征,在实际应用中也是可以实现消息的正确接收,该标志字节的8个位均为数据位,所以也就没有起始位、结束位、停止位等的一些限制,大家可以在相对特殊的通讯场合中可以借鉴。另外,在系统中如果需要有2个通讯口(prot0和prot1)同时做自由口通讯时,需要注意调用该标志字节在接收各通讯口数据时的区分,该标志字节是公用性质的标志字节。连续、、、、、、

 

   有一个问题,可能在【深入 浅出西门子S7-200 SMART PLC】中没有详细说明,详见P110页“启动”内容,就是200 smart PLC“系统块”中三种启动项的设置。之前,我一直按【深】文中提示的系统块设置方式,这样在每次新建项目时都需要重新来设置一次。实际上可以通过“工具”—“选项”弹出窗口中选择“项目”中设置RUN为默认模式,如有特殊需要再设置为其它启动模式。


说说西门子200smart modbus自由口通讯的那些事13 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有7477条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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