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

已锁定

WWCWWC

西门子1847工业学习平台

  • 帖子

    9151
  • 精华

    157
  • 被关注

    1477

论坛等级:至圣

注册时间:2008-07-26

钻石 钻石 如何晋级?

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

3198

7

2016-12-16 10:05:47

star star star

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

   上文说到利用起始符和结束符作为消息接收条件时,所需要注意的一些问题。这次来说说SMB94,前文一直沿用定义SMB94 = 255(一般按实际所需要的最大数值填写比较合适),含义是一次发送或者接收最大的数据量。如果在发送或者接收中用户不经意的将该字节数写了大于255或者通讯要求中发送、接收的数据需要要大于255怎么办?当发送指令、接收指令的TBL管脚值大于255时,系统会报错(因为是一个字节数最大可以设置的范围为0-255)。如果通讯要求发送、接收数据大于255时,可以分批进行发送、接收的操作来实现。

   假设,200smart PLC需要发送一串大于255个的数据值给串口调试软件,采用分批发送的发送如何进行。

编程思路:

初始通讯参数及指针;主程序调用初始化;发送完成中断程序中连续交替发送数据。

1)  设置通讯口SMB30 = 16# 09 自由口;9600;8个数据位;1个停止位;无效验

2)  定义发送数据最大SMB94 = 255

3)  初始化指针地址,启用指针

4)  启用发送完成中断,中断事件号9

5)  开中断

6)  启用发送指令XMT

程序:

初始化子程序:用指针偏移发送地址区,VB0和VB256循环


主程序调用初始化子程序:


发送完成中断交替发送程序:


数据块编辑待发送的字符:


打开串口调试软件,设置通讯口与SMB30一致,并启动,启动PLC运行,图示:


串口调试软件接收200smart PLC数据发送区的字符已成功,见红色框内。为区分是2次分别发送的字符数据,在第二次发送的第一个字符用了“*”加以区分。

附:当发送数据设置最大值时,最后一次发送结束符后面出现了一个“惊叹号”,而我在数据发送区内并不编辑这个符号,可能的原因是系统自动生成的一个提示符,需要引起注意。


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

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9030条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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