【玩转485】 数据发送.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【玩转485】 数据发送

说到通讯大家都觉得很难,觉得学起来没有头绪,其实我刚看到通讯的时候也是这样的感觉,资料找了一大堆都是理论,看来看去总感觉无从下手,最后终于搞懂后才发现,其实学不懂的主要原因并不应该用难来形容,而是这个东西它太复杂了,想要一次全部看懂消化是不太可能的事情,只有分步骤将这个复杂的知识一点点的进行拆分,循序渐进的进行理解,才能最终将这个复杂的知识掌握。 上一篇文章我首先给大家普及了一下通讯的基本原理(到底什么是通讯),什么是RS485,首先帮助大家先对RS485通讯建立一个基本的概念。本文我们就从通讯中最简单的步骤,数据的发送(PLC向电脑发数据)向大家讲起。 1 实验工具 第一要告诉大家我们这篇文章中要用到的工具。 1. S7-200CPU 1个(型号无所谓,最好有两个通讯口) 图1-1 2. 串口调试软件 图1-2 3. Usb转485转换接头1个(RS232转RS485接头也可) 图1-3 4. 9针接头公头1个 图1-4 5. 两芯电缆 图1-5 2 实验流程 实验目的:从PLC向电脑发送一个字节的数据。 实验操作:用S7-200PLC向电脑发送一个字节的数据,通过串口调试软件接收,由于现在的电脑都没有RS485通讯接口,因此我们要使用Usb转485转换接头才能保障电脑可以接收到来自PLC的数据,另外接线要注意9针头的3脚接Usb转485接头的信号“+”,8脚接Usb转485接头的信号“-” 3 自由口模式 说到程序的编写首先大家必须了解S7-200的自由口模式,由于S7-200的默认通讯方式是PPI通讯,因此不能自由收发数据,如果想自由收发数据,就必须先将S7-200的通讯接口设置为自由口模式,控制S7-200自由口的是特殊位寄存器SMB30和SMB130。其中SMB30是控制CPU通讯口0的,SMB130是控制通讯口1的,当然如果只有一个通讯端口就只能使用SMB30这个特殊位寄存器了。下面我们一起来看看这8个位,分别表示什么含义如图 3-1所示。 图 3-1 1) 0 、1位: 协议选择 mm: 00 = 点到点接口协议(PPI/从站模式) 01 = 自由口协议 10 = PPI/主站模式 11 = 保留(缺省是PPI/从站模式) 2) 2、 3 、4位:自由口波特率设置 bbb: 000 = 38400bps 001 = 19200bps 010 = 9600bps 011 = 4800bps 100 = 2400bps 101 = 1200bps 110 = 115200bps 111 = 57600bps 3) 5位:每个字符的数据位 d: 0 = 8位/字符 1 = 7位/字符 4) 6 、7位:效验选择 pp: 00 = 不效验 01 = 偶效验 10 = 不效验 11 = 奇效验 这里还要和大家补充一个概念,在通讯的过程中每次发送与接收的最小单位是字符而不是位,1个字符通常包括1个起始位表示字符的开始,1个停止位表示字符的结束,一个奇偶效验位用于验证字符错对,和8个或者7个数据位用于传递信息。这里奇偶效验位可有可无,数据位通常情况下是8个位也就是1个字节,因此如果一个字符包含奇偶效验位通常是11个位,不包含奇偶效验位则是10个位。 通过上面对自由口模式的介绍,如果我们在S7-200CPU的通讯端口0使用自由口模式,通讯速率为9600bps传输的字符不要奇偶效验位,那么我们就必须将SMB30中的数据配置图 3-2所示换算成16进制就是16#9 图 3-2 4 程序编写 在开始编写程序之前,我们首先要掌握S7-200发送指令的使用。 图4-1 XMT发送指令有两个管脚,TBL和PORT。 PORT:通讯端口编号,如果用0端口则写0,如果用1端口则写1. TBL:定义发送缓冲区的起始地址和缓冲区的大小,如果TBL中写VB100,VB100中存放1,则发送缓冲区是VB101,发送数据时将VB101中的数据发送出去。如果VB100中存放2,则发送缓冲区为VB101和VB102,发送数据时将VB101、VB102的数据发送出去。 下面我们来看程序的具体写法。 图 4-2 图 4-2所示的程序就是一个最简单的发送程序,首先用SMB30将通讯口0定义为自由口,通讯速率9600bps,然后定义VB101为发送缓冲区(因为VB100中存放的是1),通过SM0.5将VB101中的16进制的CC以1秒钟为单位发送给电脑。最终我们电脑将会以1秒为单位接收到PLC发送的字符CC如图 4-3所示。 图 4

文档评论(0)

wdhao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档