ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:32.52KB ,
资源ID:15870613      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15870613.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(西门子S7200 自由口通信实用文档Word文档格式.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

西门子S7200 自由口通信实用文档Word文档格式.docx

1、文档编号“A0136”西门子 S7-200LOGO!SITOP 参考以下为本次探讨的发帖整理,查看原始交流内容请点击此处。1.自由口通信基本概念(1楼5楼)2.自由口通信编程指令的使用和技巧(6楼15楼)3.自由口通信容易犯的错误(16楼24楼)4.产品功能建议(25楼27楼)quote:以下是引用BABU在2011-01-20 15:17:08的发言:我回来了,项目终于做完了,可以回家过年了,:)。自由口通信真是折腾的我好惨啊,简单回顾一下,希望对像我这样的菜鸟有些借鉴作用。先感谢一下西门子论坛和热线,没少骚扰他们。在完全没有准备的情况下甲方又加进一个仪表,做什么自有口通信,晕阿!没办法,迎

2、着上吧!网上搜资料,看手册,越看越糊涂!时间紧迫,还是直接上手做吧。首 先是把PLC和仪表连接起来,可仪表的口是rs232的,热线工程师告诉我得做rs232/485的转换,打车到市场上买个转换器(打车钱比设备钱还多, 可见现场多么偏僻阿),听卖转换器的老板给我分析了一下每种的区别不光是价格的区别,说实在的,当时非常惭愧,老板懂的比我多多了。买回来后自己动手焊线,一个人费了九牛二虎之力,焊的那个惨样就不用说了,还好有壳可以包装一下。焊好了,实验一下效果吧,不知到怎么做了,打电话。热线工程师告诉我找个串口调试工具,连接到pc机上测试。在串口调试工具上发一串数,在200上收,ok!高兴坏了,没白忙活

3、。硬件上应该没问题了,接下来开始做程序了。先得理解仪表的协议,弄清了仪表先要收到请求数据的命令,然后根据命令做出响应。同样,先用串口调试工具和仪表连接进行通信测试,还算聪明吧,:)!然后开始在200里编写收发程序,开始时整个思路都是乱的,无从下手。就把200手册上的例子程序整个抄上,在cpu224的两个接口间进行通信实验。经过不停的实验,终于一点一点地理解了控制字节、控制参数的含义,怎么设置接收结束条件,怎么使用中断、怎么控制接收和发送等等。ok,开始真正地与仪表通信了。发请求命令,收数据,可收到的数据是ASCII码,得进行数据转换。根据大侠们的提醒,经过实验知道了怎么将ASCII码转换为实际

4、的工程数据。到此基本结束了,虽然说着好像也没什么,但只有我最了解其中的痛苦,不停地实验,不停地修改阿!后面在实际运行中又遇到了有时通信中端的问题,将双绞线的屏蔽接到地上后暂时还没出现问题。总结一下,个人认为作自由口通信需要做好以下几方面工作:1、最主要的是多动手,光看资料是没有用的,只有自己亲自去动手实验一下才能发现问题和帮助理解。2、做实验是找个串口调试工具(我用的是sscom32)是必须的,可以帮助你测试你的通信线,调试你的程序,尽量不要直接与设备进行通信,通信不上不好分析原因。3、我认为200手册上的例子程序非常好,基本的处理方法和编程方法都涉及到了,可以根据你的需要做修改,当然首先要充

5、分地理解他。4、遇到不太容易理解的,或有问题的,多和别人交流一下,从中可以得到不同的思路。提前给西门子和坛子里的专家们拜年了!以下是引用LaoHuai在2010-12-24 08:29:48的发言:以下是引用happy Julia在2010-12-23 21:58:54的发言:以前很少用自由口通信,但项目里要用呀,正在学习,就接到邀请了。请教各位大侠:S7-200自由口能支持的最高速率是多少呀,我希望通信能快点。还有它的数据位、停止位是几位呀,我好确定能和什么样的设备通信呀。最高波特率是115200BPS,但需要1.2或者以上版本的CPU。数据位可以是7位或8位停止位是固定的1位。以下是引用3

6、00小小生在2010-12-23 13:52:59的发言:300也可以实现与上位机自由通讯的,S7-200 自由口通讯是基于RS485 通讯基础的半双工通讯,因此,发送和接收指令不能同时执行。这点有点不好,在300里可以422通讯,但最好是PLC发送不要连续发送,而接收倒没事。我 有次在调试的时候发现上位机发了任务后,PLC设备要过好长一段时间才去执行,后来请教了老师傅,老师傅说把发送端加个间隔时间就好了以下是引用鼠老爹在2010-12-31 15:59:24的发言:不管是什么通讯,传送的都是二进制代码。ASCII码与二进制协议的区别在于代码所表示内容的方式不同。如 果使用ASCII代码,则数

7、据不能直接用于数学运算,而必须转换成普通的二进制代码。这样会加重程序负担。但是ASCII代码用于通讯有一个好处,起始字 符与结束字符比较容易确定和判别,它们一般不会出现在数据区。而用二进制代码通讯,数据无需转换即可直接使用(高低位字节可能需要交换),PLC的负担较 小。但是起始字符和结束字符经常会与数据重复。因此,用二进制代码通讯,通常是靠字符数和定时器来确定接收终点,主从站之间的步调协调非常重要。以下是引用Am_Programer在2010-12-27 15:48:西门子S7-200系列PLC支持自由口通信协议。所谓自由口协议是指通过用户程序控制CPU主机的通信端口的操作模式来进行通信。用这

8、种自由口模式可以用自定义的通信协议连接多种智能设备。自由口模式支持ASCII和二进制协议。在自由口模式下,主机处于RUN方式时,用户可以用相关的通信指令所编写的程序控制通信口的操作。当主机处于STOP方式时,自由口通信被终止,通信口自动切换到正常的PPI协议操作。自由口通信指令包括:XMT,自由口发送指令;RCV,自由口接受指令。用特殊标志寄存器SMB30(端口0)和SMB130(端口1)的各个位设置自由口模式,并配置自由口通信参数,如波特率、奇偶效验和数据位。发送指令(XMT)和发送中断:发送指令允许S7-200的通信口上发送最多255个字节,发送中断通知程序发送完成。接受字符中断:接受字符

9、中断通知程序通信口上接受到了一个字符,应用程序就可以根据所用的协议对该字符进行相关的操作。接受指令(RCV):接受指令从通信口接收到整条信息,当接收完成后产生中断通知应用程序。需要在SM存储器中定义条件来控制接收指令开始和停止接受信息。接受指令可以根据特定的字符或时间间隔来启动和停止接受信息。接受指令可以实现多数通信协议。自由口通信功能的用途:1. 通过RS-232或RS-485串口连接多种智能仪表或RTU,根据智能仪表或RTU定义的通信协议编写用户程序与智能仪表或RTU通信。2. 使用USS协议与西门子MicroMaster系列变频器通信,STEP7-Micro/WIN提供USS协议库,S7

10、-200 CPU是主站,变频器是从站。3. 创建用户程序来模拟另外一种网络上的从站器件。例如S7-200的用户程序模仿一个Modbus从站。STEP7-Micro/WIN提供Modbus协议库。4. 采用自定义通信协议与PC通信。PC上的应用软件可以采用此方法方便的访问S7-200的数据。这是第三方软件访问S7-200PLC比较简便,廉价的方法。对于自由口通讯,西门子的很多资料都做了比较详细的介绍,其中还包含了大量的例子程序。由于通讯的不可见性,很多人还是不能很好的掌握,我建议大家:1、理解什么是通讯、什么是串口、什么是232、什么是485?没有过硬的硬件知识是不可能做出通讯的,你连线都不知道

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

12、要根据你的实际情况了,西门子提供的库也是很方便的!以下是引用yanxiao在2010-12-24 13:50:10的发言:我看过不少问S7200通讯问题的贴子,觉得很多问题并不是S7200的,而是串行通讯的共性问题,也就是对串行通讯本身概念的认识问题。下面我来谈谈在我的记忆中关于串行通讯的一些认识。1、串行通讯只有一个传输通道,每个时刻只能表达一种状态。不管什么介质,不管是什么信号,我们用1表示一种状态,用0表示另一种状态。2、只用1和0两种状态,是不能表达更多信息的。好在有一个物理量,对每个系统来讲是统一的,那就是时间。我们现在很容易做到不同系统之间的定时误差控制在PPM数量级。1和0在时间

13、上进行有序的组合,就可表达近乎无限的信息。3、任何一个信号,如果不赋给它一些特点的意义,实际上没什么用。两个系统要通过信号交换信息,必须对信号有一个共同的约定,这就是我们通常所说的协议。4、最基本的协议是物理层面的(那个OSI的七层协议模型,第一层就是物理层协议)。RS232、RS485、RS422,这些是物理层面的一些协议。5、我们现在要谈的是异步串行通讯。异步,发达方和接收方之间,没有额外的通道来传送信息何时传送与接收。每个信息单元的起止时间,发送方编在信息中,由接收方自已解码并同步。6、 好。现在来讲一下传送一个字节的过程。在没有传送信息时,传输线处于空闲状态。规定:空闲状态为1。发送方

14、(TX)准备发送,驱动传输线让它由1变为0, 并持一位的时间长度,我们把这一位叫做起始位。接收方(RX),检测到传输线由1变0,意味着可能有信息要传了,RX就持续检测,以验证这个0是不是持续 了规定的一位时间长度,若是个合法的起始位,就按约定的定时方式,把后续的传输线状态,接收为1个字节。TX在发完起始位后,就发字节中的第一个位 (bit),并依次把字节中的所有位发完,每bit均持续相同的一位时长。然后再发校验位(如果约定发/收方都采用的话)、停止位。7、 停止位,这个要说一下。我们知道起始位是0,而这个停止位,规定是1,和传输线的空闲状态1是相同的。停止位规定的时长比较乱,有1位停止位(也就持续时 间占1个位长)、1.5位、和2位停止位,其它时长的停止位好象没见过。停止位的作用,其一是作为一字节单元的成员,给接收方定时用的,也就是下一个字 节,在停止位之后才开始。另一个作用,可供检查字节传送的完整性。因为停止位是规定为1状态的,若在停止位的时间里测到了非1状态,表示这个字节传送有问 题,有可能被接收方丢弃,传送失

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1