西门子S7-200 自由口通信实用文档

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

主题:应用探讨—S7-200 自由口通信—发帖整理

强大而灵活的自由口通信能力,是S7-200系统的一个重要特点。

S7-200 CPU的RS485通信口提供了建立在串行通信基础上的“自由”通信能力,数据传输协议完全由用户程序决定。通过自由口方式,S7-200可以与串行打印机、条码阅读器等通信。而S7-200的编程软件也提供了一些通信协议库,如USS协议库和MODBUS RTU从站协议库,它们实际上也使用了自由口通信功能。

开设本话题的目的,在于澄清自由口通信的基本概念,强调使用中的要点,讨论应用的常见问题。经过此次集中交流,解决了如下一些问题:

1. 自由口通信基本概念

2. 自由口通信编程指令的使用和技巧

3. 自由口通信常见问题

4. 产品功能建议

更多信息请参考下面文档。

“下载中心”参考文

档:

文档编号“1109582”——S7-200《可编程控制器系统手册》

文档编号“A0136”——《西门子 S7-200•LOGO!•SITOP参考》

以下为本次探讨的发帖整理,查看原始交流内容请点击此处。

1.自由口通信基本概念(1楼——5楼)

2.自由口通信编程指令的使用和技巧(6楼——15楼)

3.自由口通信容易犯的错误(16楼——24楼)

4.产品功能建议(25楼——27楼)

quote:

以下是引用BABU在2011-01-20 15:17:08的发言:

我回来了,项目终于做完了,可以回家过年了,:)。

自由口通信真是折腾的我好惨啊,简单回顾一下,希望对像我这样的菜鸟有些借鉴作用。

先感谢一下西门子论坛和热线,没少骚扰他们。

在完全没有准备的情况下甲方又加进一个仪表,做什么自有口通信,晕阿!没办法,迎着上吧!

网上搜资料,看手册,越看越糊涂!时间紧迫,还是直接上手做吧。

首先是把PLC和仪表连接起来,可仪表的口是rs232的,热线工程师告诉我得做rs232/485的转换,打车到市场上买个转换器(打车钱比设备钱还多,可见现场多么偏僻阿),听卖转换器的老板给我分析了一下每种的区别——不光是价格的区别,说实在的,当时非常惭愧,老板懂的比我多多了。

买回来后自己动手焊线,一个人费了九牛二虎之力,焊的那个惨样就不用说了,还好有壳可以包装一下。

焊好了,实验一下效果吧,不知到怎么做了,打电话。

热线工程师告诉我找个串口调试工具,连接到pc机上测试。

在串口调试工具上发一串数,在200上收,ok!高兴坏了,没白忙活。

硬件上应该没问题了,接下来开始做程序了。

先得理解仪表的协议,弄清了仪表先要收到请求数据的命令,然后根据命令做出响应。

同样,先用串口调试工具和仪表连接进行通信测试,还算聪明吧,:)!

然后开始在200里编写收发程序,开始时整个思路都是乱的,无从下手。就把200手册上的例子程序整个抄上,在cpu224的两个接口间进行通信实验。

经过不停的实验,终于一点一点地理解了控制字节、控制参数的含义,怎么设置

接收结束条件,怎么使用中断、怎么控制接收和发送等等。

ok,开始真正地与仪表通信了。

发请求命令,收数据,可收到的数据是ASCII码,得进行数据转换。

根据大侠们的提醒,经过实验知道了怎么将ASCII码转换为实际的工程数据。

到此基本结束了,虽然说着好像也没什么,但只有我最了解其中的痛苦,不停地实验,不停地修改阿!

后面在实际运行中又遇到了有时通信中端的问题,将双绞线的屏蔽接到地上后暂时还没出现问题。

总结一下,个人认为作自由口通信需要做好以下几方面工作:

1、最主要的是多动手,光看资料是没有用的,只有自己亲自去动手实验一下才能发现问题和帮助理解。

2、做实验是找个串口调试工具(我用的是sscom32)是必须的,可以帮助你测试你的通信线,调试你的程序,尽量不要直接与设备进行通信,通信不上不好分析原因。

3、我认为200手册上的例子程序非常好,基本的处理方法和编程方法都涉及到了,可以根据你的需要做修改,当然首先要充分地理解他。

4、遇到不太容易理解的,或有问题的,多和别人交流一下,从中可以得到不同的思路。

提前给西门子和坛子里的专家们拜年了!

1.自由口通信基本概念(1楼——5楼)

quote:

以下是引用LaoHuai在2010-12-24 08:29:48的发言:

quote:

以下是引用happy Julia在2010-12-23 21:58:54的发言:以前很少用自由口通信,但项目里要用呀,正在学习,就接到邀请了。

请教各位大侠:S7-200自由口能支持的最高速率是多少呀,我希望通信能快点。还有它的数据位、停止位是几位呀,我好确定能和什么样的设备通信呀。

最高波特率是115200BPS,但需要1.2或者以上版本的CPU。

数据位可以是7位或8位

停止位是固定的1位。

quote:

以下是引用300小小生在2010-12-23 13:52:59的发言:

300也可以实现与上位机自由通讯的,S7-200 自由口通讯是基于RS485 通讯基础的半双工通讯,因此,发送和接收指令不能同时执行。这点有点不好,在300里可以422通讯,但最好是PLC发送不要连续发送,而接收倒没事。我有次在调试的时候发现上位机发了任务后,PLC设备要过好长一段时间才去执行,后来请教了老师傅,老师傅说把发送端加个间隔时间就好了

以下是引用鼠老爹在2010-12-31 15:59:24的发言:

不管是什么通讯,传送的都是二进制代码。ASCII码与二进制协议的区别在于代码所表示内容的方式不同。

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

以下是引用Am_Programer在2010-12-27 15:48:59的发言:

西门子S7-200系列PLC支持自由口通信协议。所谓自由口协议是指通过用户

相关文档
最新文档