S7-200自由口通讯教程及编程实例(二).docVIP

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

S7-200自由口通讯教程及编程实例(二) HYPERLINK http://5/sup/?action-top-idtype-hot排行榜 HYPERLINK javascript:;收藏 HYPERLINK javascript:doPrint();打印 HYPERLINK javascript:;发给朋友 HYPERLINK javascript:;举报 发布者:HYPERLINK http://5/sup/space.php?uid=30op=newsadmin 热度19票 浏览175次 【HYPERLINK http://5/sup/?action-viewcomment-itemid-285共1条评论】【HYPERLINK http://5/sup/?action-viewnews-itemid-285#sign_msg我要评论】时间:2009年11月11日 19:03 三、 PLC编程 现在,我们已经知道如何用AT指令发送短消息,剩下的工作是用PLC程序来发送这些AT指令。S7-200的通讯端口为RS-485接口,RS-485接口为半双工接口,因此,编写PLC程序的关键是避免在通讯端口上同时发送和接收。我们下面将介绍一种标准的编程模式,按照这种模式编写自由口通讯程序可以有效的避免因同时发送和接收造成的通讯冲突,从而保证程序的正常运行。 1. 初始化 Network 1 LD SM0.1 MOVB 9, SMB30 MOVB 2 SMB87 MOVB , SMB88 MOVW +5, SMW92 MOVB 255, SMB94 ATCH INT_0, 23 ATCH INT_1, 9 ENI 将上面这段程序添加到主程序中,对PLC的端口0进行初始化。这段程序以SM0.1为触发条件,每当PLC进入RUN状态时执行一次。 MOVB 9, SMB30 该指令将端口0设置为 9600,8,N,1 自由口方式 MOVB 2 SMB87 SM87.7=1 允许端口0接收字符 SM87.6=1 当检测到与SMB88中相同的字符时开始接收,并将该字符当作信息的首字符 SM87.5=0 不检测信息的结束字符 SM87.4=0 不检测端口空闲状态 SM87.3=0 定时器为内部字符定时器,意思是PLC开始接收信息后(检测到起始字符),每接收到一个字符就启动定时器,当定时器到达在SMW92中设置的时间后,即认为定时器超时 SM87.2=1 允许在定时器超时后停止接收,并产生接收完成中断 SM87.1=0 忽略Break条件 MOVB , SMB88 设置接收起始字符为ASCII码的””,当TC35收到AT+CMGS=后将返回””,当PLC收到””后发送PDU数据包 MOVW +5, SMW92 设置定时器超时时间为5 ms MOVB 255, SMB94 设置RCV指令接收的最大字符数位255 ATCH INT_0, 23 中断时间23为端口0接收完成中断,将该中断连接到中断0 ATCH INT_1, 9 中断时间9为端口0发送完成中断,将该中断连接到中断1 ENI 中断允许 2. 接收TC35的信息 Network 2 LD SM0.0 RCV VB100, 0 在初始化程序中,端口0以被允许接收来自TC35的信息,在主程序中添加上面的程序将端口0置于接收状态。这时端口0将检测收到的字符,当收到””时即开始接收,并把收到的信息保存到VB101开始的存储器中(VB100中将保存每次收到的字符的个数,当接收结束时,该位置被清零)。 3. 发AT指令 PLC要向TC35发送两部分内容来发送一条短消息,首先是AT指令(AT+CMGS=18),当收到””后,发送PDU数据包。这里,我们用M0.0的上升沿来触发PLC发送AT指令。在主程序中添加下面指令 Network 3 LD M0.0 EU R SM87.7, 1 RCV VB100, 0 XMT VB0, 0 R SM87.7, 1 SM87.7置0,禁止在端口0接收信息 RCV VB100, 0 执行RCV指令,停止端口0的接收。 XMT VB0, 0 发送AT指令到TC35 这里需要特别注意的是,在初始化程序中,端口0已被置为接收状态,此时如果直接发送AT指令,将会导致端口0发生通讯冲突,而导致其不能正常工作。因此,我们在发送指令前必须先禁止接收(将SM87.7复0)然后执行RCV指令,RCV指令执行时将会检测SM87.7的状态,当发现SM87.7=0时,即停止端口0的接收。这里我们建议,在使用XMT指令前,首先执行R SM87.7, 1、 RCV VB100, 0两条指令(VB100可以换成其他地址)。 XMT指令指向VB0,我们将AT指令写

文档评论(0)

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

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

1亿VIP精品文档

相关文档