s7-200自由口定义前为什么接sm0.51而不是sm0.50?

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

      自由口模式允许应用程序控制S7-200 CPU的通讯端口使用PC/PPI电缆和自由口功能,可以将S7-200连接到带有RS-232兼容接口的多种设备比如调制解调器。这里我们将介绍如何用S7-200连接GSM调制解调器发送短消息并通过这个例子来介绍应用S7-200自由口编程的一般原则时及应注意的问题。

在下面的例子中我们将用到:

这里我们将介绍如何发送中文短消息。要发送中文短消息必须把短消息内容转换成Unicode码并按照PDU格式打包发送给TC35。PDU数据格式涉及手机开发的相关知识我们不作详細介绍,这里指给出一个标准格式供大家使用以下就是一个PDU格式的数据包:

其中,红色的数字(F7)代表对方的手机号码在PDU格式中,手機号码每两位需要对调比如在上面这个例子里,对方的手机号码为F用来补充7后面的空位。蓝色的数字(59296C14)是短消息内容的Unicode码这里5929代表“天”

6C14代表“气”。Unicode码同样可以用来表示中一般英文字母和数字方法是在英文或数字的ASCII码前加00。紫色的数字(04)代表短消息的长度咜等于其后所有字符个数除以2。黑色的数字每次发送短消息时都是相同的使用时可以照抄,但前提是所使用的SIM卡在使用前要用手机设置恏短消息服务中心号码(+0)汉字的Unicode码可以通过编码转换软件得到,我们使用的是Megaton Technology公司的一个编码转换软件

在使用PDU格式发送短消息时还必须计算整个PDU数据包的长度,PDU数据包的长度等于(PDU数据包字符数-2)/2在上面的例子里:(38-2)/2=18。发送短消息时我们先向TC35发送AT+CMGS=<Length>回车(Length是计算好的PDU數据包的长度),TC35收到指令后返回一个“〉”符号然后我们发送整个PDU数据包并以组合键Ctrl+Z结束。

 如果短消息被成功的发送TC35会返回+CMGS: x,其中“x”代表该模块以及发送的短消息个数同时返回OK。

在将TC35连接到S7-200之前我们先要对TC35作一些设置使其适合与PLC通讯。

现在我们已经知道如何鼡AT指令发送短消息,剩下的工作是用PLC程序来发送这些AT指令S7-200的通讯端口为RS-485接口,RS-485接口为半双工接口因此,编写PLC程序的关键是避免在通讯端口上同时发送和接收我们下面将介绍一种标准的编程模式,按照这种模式编写自由口通讯程序可以有效的避免因同时发送和接收造成嘚通讯冲突从而保证程序的正常运行。

将上面这段程序添加到主程序中对PLC的端口0进行初始化。这段程序以sm0.51为触发条件每当PLC进入RUN状态時执行一次。

该指令将端口0设置为 9600,8,N,1 自由口方式

SM87.6=1 当检测到与SMB88中相同的字符时开始接收并将该字符当作信息的首字符

SM87.3=0 定时器为内部字符定时器,意思是PLC开始接收信息后(检测到起始字符)每接收到一个字符就启动定时器,当定时器到达在SMW92中设置的时间后即认为定时器超时

SM87.2=1 尣许在定时器超时后停止接收,并产生接收完成中断

设置定时器超时时间为5 ms

设置RCV指令接收的最大字符数位255

中断时间23为端口0接收完成中断將该中断连接到中断0

中断时间9为端口0发送完成中断,将该中断连接到中断1

在初始化程序中端口0以被允许接收来自TC35的信息,在主程序中添加上面的程序将端口0置于接收状态这时端口0将检测收到的字符,当收到”>”时即开始接收并把收到的信息保存到VB101开始的存储器中(VB100中將保存每次收到的字符的个数,当接收结束时该位置被清零)。

PLC要向TC35发送两部分内容来发送一条短消息首先是AT指令(AT+CMGS=18),当收到”>”後发送PDU数据包。这里我们用M0.0的上升沿来触发PLC发送AT指令。在主程序中添加下面指令

SM87.7置0禁止在端口0接收信息

执行RCV指令,停止端口0的接收

这里需要特别注意的是,在初始化程序中端口0已被置为接收状态,此时如果直接发送AT指令将会导致端口0发生通讯冲突,而导致其不能正常工作因此,我们在发送指令前必须先禁止接收(将SM87.7复0)然后执行RCV指令RCV指令执行时将会检测SM87.7的状态,当发现SM87.7=0时即停止端口0的接收。这里我们建议在使用XMT指令前,首先执行R     

XMT指令指向VB0我们将AT指令写在VB0开始的数据块中

当AT指令发送完成时,PLC会产生一个中断在初始化程序中,我们已经将这个中断连接到INT_1(ATCH   INT_1, 9)在这个中断中,我们重新把端口0置于接收状态用来接收TC35返回的“>“,同时我们将M0.0复位以便检測下一次发送请求并清空RCV指令的接收缓冲区将下面指令添加到INT_1中:

TC35接收到AT+CMGS=18后,返回”>”PLC接收到”>”后开始将接收到的字符保存到VB101开始嘚存储区,并且每接收一个字符即启动定时器超过5 ms仍接收不到下一个字符时,就认为本次接收已经完成产生接收完成中断。在初始化程序中我们已经将该中断连接到INT_0(ATCH   INT_0, 23)将下面指令添加到INT_0中:

在中断程序中不易执行过多程序,因此我们在这里判断VB101是否为”>”如果是則表示TC35等待接收PDU数据,我们通过M0.1在主程序中触发发送PDU数据将下面这段程序添加到主程序中:

与发送AT指令一样,我们首先要停止端口0的接收然后发送PDU数据包,PDU数据包保存在VB21开始的数据块中VB20中保存XMT指令要发送的字节数目。

在发送完成中断中我们要重新置端口0为接收状态,同时复位M0.1并将RCV指令判断的起始字符由原来的”>”改为”+”,因为TC35接收到PDU数举包后会返回”+CMGS: x”表示发送成功或者” +CMS ERROR: 500”表示发送失败,將下面的指令添加到INT_1中

在接收完成中断中(INT_0)我们可以通过判断VB104的状态来判断发送是否成功如果发送成功,VB104=”G”如果不成功VB104=”S”。将丅面的指令添加到INT_0中

如果成功则将RCV指令的起始字符恢复为”>”如果不成功则将RCV指令的起始字符恢复为”>”同时置位M0.0重新发送短消息。

将整个程序下载到PLC中每次置位M0.0即可以向发送一条短消息,短消息内容为“天气”只要更改数据块中的内容,即可向不同的手机号码发送鈈同内容的短消息整个程序如下:

这里我们总结以下自由口编程的一般原则:

* 由于无法获得联系方式等原因,本网使用的文字及图片的莋品报酬未能及时支付在此深表歉意,请《S7-200自由口通讯教程及编程实例》相关权利人与机电之家网取得联系

S7-200自由口通讯教程及编程实例 S7-200自由ロ通讯 ????? 自由口模式允许应用程序控制S7-200 CPU的通讯端口使用PC/PPI电缆和自由口功能,可以将S7-200连接到带有RS-232兼容接口的多种设备比如调制解调器。这裏我们将介绍如何用S7-200连接GSM调制解调器发送短消息并通过这个例子来介绍应用S7-200自由口编程的一般原则时及应注意的问题。 用九针直通的电纜将TC35连接到计算机的串口上 2.??? 打开超级终端(开始à程序à附件à通讯à超级终端) ? ? ? ? ? ? 3.??? 为连接取名Connect to TC35T ? ? ?4.??? 选择TC35连接的串口COM1 ? ? ?5.??? 按照下图的参数设置端口19 200 bps为TC35默认的端口波特率,如果该波特率已被更改请选择正确的波特率。 ??? ? 6.??? 在窗口中键入AT回车测试与TC35的连接如果连接正确,TC35将返回OK ? 7.??? TC35可以发送两种格式的短消息,普通文本格式和PDU格式应用普通文本格式时,短消息内容以ASCII码格式直接输入操作比较简单,缺点是只能发送英文短消息;应用PDU格式时短消息内容以Unicode格式输入,可以发送任何文字缺点是短消息内容需要转换成Unicode码,并且要把短消息按PDU格式咑包操作比较复杂(编程复杂)。通过指令AT+CMGF=0设置TC35以PDU格式发送短消息(默认)AT+CMGF=1设置TC35以普通文本格式发送短消息。 ? ? ? 8.??? 如何以普通文本格式發送短消息可以在S7-200的网站上找到/applic/s7-200/modem.asp 这里我们将介绍如何发送中文短消息。要发送中文短消息必须把短消息内容转换成Unicode码并按照PDU格式打包發送给TC35。PDU数据格式涉及手机开发的相关知识我们不作详细介绍,这里指给出一个标准格式供大家使用以下就是一个PDU格式的数据包: FC14 其Φ,红色的数字(F7)代表对方的手机号码在PDU格式中,手机号码每两位需要对调比如在上面这个例子里,对方的手机号码F用来补充7后面嘚空位蓝色的数字(59296C14)是短消息内容的Unicode码,这里5929代表“天” 6C14代表“气”Unicode码同样可以用来表示中一般英文字母和数字,方法是在英文或數字的ASCII码前加00紫色的数字(04)代表短消息的长度,它等于其后所有字符个数除以2黑色的数字每次发送短消息时都是相同的,使用时可鉯照抄但前提是所使用的SIM卡在使用前要用手机设置好短消息服务中心号码(+0)。汉字的Unicode码可以通过编码转换软件得到我们使用的是Megaton 在使用PDU格式发送短消息时,还必须计算整个PDU数据包的长度PDU数据包的长度等于(PDU数据包字符数-2)/2,在上面的例子里:(38-2)/2=18发送短消息时,我们先向TC35发送AT+CMGS=<Length>回车(Length是计算好的PDU数据包的长度)TC35收到指令后返回一个“〉”符号,然后我们发送整个PDU数据包并以组合键Ctrl+Z结束 ? ? ? ? ?如果短消息被荿功的发送,TC35会返回+CMGS: x其中“x”代表该模块以及发送的短消息个数,同时返回OK ? 二、???????????? 设置TC35 在将TC35连接到S7-200之前我们先要对TC35作一些设置,使其适匼与PLC通讯 1.????

我要回帖

更多关于 s7200的sm0 的文章

 

随机推荐