S7―200自由口通信的原理及学习建议

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

S7―200自由口通信的原理及学习建议

摘要:本文从S7-200 PLC自由端口通信协议入手,讲述自由端口协议的基本概念、自由端口通信与USS、MODBUS RT的关系;利用自由端口通信数据发送和数据接收的梯形图实例讲述了自由端口的编程方法。自由端口通信的ASCII码和二进制码协议区别,总结了自由端口协议的功能及用途,文章最后作者根据自身经验,提出了学习自由端口协议的几点建议。

关键词:S7-200 PLC自由端口协议ASCII二进制功能用途学习建议

中图分类号:TP336 文献标识码:A 文章编号:1007-9416(2015)04-0037-01

强大而灵活的自由口通信能力,是S7-200系统的一个重要特点。S7-200 PLC的通信端口按照串行485通信总线规范设计,并具备自由通信功能。在自由通信模式下,通信数据的发送、接受协议由编程人员自行规定,但一般都是按照受控设备的支持的通信协议编写自由通信协议。在自由通信协议的平台上,S7-200PLC可以方便的与上位机的第三方软件(组态王、MSG等)、扫描设备、编码器、单片机进行数据交换。USS协议库和MODBUS RTU从站协议库是S7-200

的编程软件固有的通信协议库,这些协议库都使用了自由口通信功能。正确理解S7-200的自由口通讯对于自控人员具有极其重要的意义。

1 自由口通信基本概念

西门子S7-200系列PLC的通讯端口都具备自由口通信功能。所谓自由口协议是指通过用户程序控制CPU主机的通信端口的操作模式来进行通信。只有在PLC处于运行模式时,其通信端口才能工作在自由端口模式。当PLC从RUN 模式切换到STOP模式时,其自由通信协议模式自动关闭,并将通信端口切换到PPI通信模式。

与自由端口通信相关的指令有数据发送指令XMT和数据接收指令RCV。

自由端口的数据发送梯形图程序如图1。在图1中,当EN端为高电平时,PLC的通信端口PROT1就会将VB100及其后的若干字节按一定的比特率发送出去。发送数据的比特率、数据位数、校验位设置、均在特殊寄存器SMB130中设置(如果是端口0,则在SMB30中设置)。每次发送数据的总数最大值为255个字符。

自由端口的数据接收梯形图程序如图2。当EN端获得高电平后,PLC的通行端口PROT1处于接受数据待命状态。一旦有符合设置要求的数据(比特率、数据位数、数据接收起始位等),PLC就将端口的数据依次接受至VB200开始的

寄存器中,一条完整的信息接收完成后即产生一次接收完成中断。接收数据的比特率、数据位数、校验位设置、均在特殊寄存器SMB130中设置(如果是端口0,则在SMB30中设置)。每次接收数据的总数最大值为255个字符。

2 自由口通信ASCII码与二进制协议

不管是什么通讯,传送的都是二进制代码。ASCII码与二进制协议的区别在于代码所表示内容的方式不同。如果使用ASCII代码,则数据不能直接用于数学运算,而必须转换成普通的二进制代码。这样会加重程序负担。但是ASCII代码用于通讯有一个好处,起始字符与结束字符比较容易确定和判别,它们一般不会出现在数据区。而用二进制代码通讯,数据无需转换即可直接使用(高低位字节可能需要交换),PLC的负担较小。但是起始字符和结束字符经常会与数据重复。因此,用二进制代码通讯,通常是靠字符数和定时器来确定接收终点,主从站之间的步调协调非常重要。

3 自由口通信功能的用途

通过RS-232或RS-485串口连接多种智能仪表或RTU,根据智能仪表或RTU定义的通信协议编写用户程序与智能仪表或RTU通信。

使用USS协议与西门子MicroMaster系列变频器通信,STEP7-Micro/WIN提供USS协议库,S7-200 CPU是主站,变频器是从站。

创建用户程序来模拟另外一种网络上的从站器件。例如S7-200的用户程序模仿一个Modbus从站。STEP7-Micro/WIN 提供Modbus协议库。

采用自定义通信协议与PC通信。PC上的应用软件可以采用此方法方便的访问S7-200的数据。这是第三方软件访问S7-200PLC比较简便,廉价的方法。

4 学习自由口通信的建议

对于自由口通讯,西门子的很多资料都做了比较详细的介绍,其中还包含了大量的例子程序。由于通讯的不可见性,很多人还是不能很好的掌握,我建议大家:

(1)理解什么是通讯、什么是串口、什么是232、什么是485?没有过硬的硬件知识是不可能做出通讯的,你连线都不知道怎么接,怎么调试你的程序?(2)仔细阅读西门子关于通讯的资料,不需要多只需要精,因为各种版本的资料基本是一样的,关键就是SMB30、SMB86、87、88、89、SMW90、92、SMB94自己控制通讯过程需要SMB2,把这些弄明白了,才有可能做出通讯程序。(3)使用PC的通讯软件协助调试,有了PC的通讯软件可以看见通讯过程中的数据,能够更方便的调试程序。(4)理解各种通讯协议。大家要注意串口通讯和协议是2码事,不论是PPI、MODBUS 还是USS它们都有自己的协议规范,根据规范来写你就可以实现这种通讯。只不过PPI是不公开通讯协议的,没有办法

写而已!

最后建议大家自己做通讯,起码会做!至于用不用自己做就要根据你的实际情况了,西门子提供的库也是很方便的!

相关文档
最新文档