S7-200 自由口通讯
自由口模式允许应用程序控制S7-200 CPU 的通讯端口,使用PC/PPI 电缆和自由口功能,可以将S7-200连接到带有RS-232 兼容接口的多种设备,比如调制解调器。这里我们将介绍如何用S7-200 连接GSM调制解调器发送短消息,并通过这个例子来介绍应用S7-200 自由口编程的一般原则时及应注意的问题。
在下面的例子中我们将用到:
1. PC/PPI 电缆(10 位;9 600 波特;DIP 开关设置:0 1 0 1 1)
2. 西门子 S7-200 CPU22X
3. TC35 Terminal GSM 调制解调器
4. 一个9 直通针转接头(用来连结PC/PPI 电缆与TC35 Terminal 调制解调器)
5. 一根九针直通电缆(用来连结计算机与TC35 Terminal 调制解调器)
6. STEP 7-Micro/Win V3.2 或更高版本软件
西门子S7—200系列PLC的计数器分为一般用途计数器和高速计数器两大类。一般用途计数器用来累计输入脉冲的个数,其计数速度较慢,其输入脉冲频率必须要小于PLC程序扫描频率,一般为几百HZ,在实际应用中主要...
西门子PLC的定时器指令
按时间控制是较常用的逻辑控制形式,定时器是PLC中较常用的元件之一。用好、用对定时器对PLC程序设计非常重要。定时器是根据预先设定的定时值,按一定的时间单位进行计时的PLC内部装置,在运行过程中当定时器 ...
西门子PLC的RS触发器指令
RS触发器指令分为置位优先触发器指令SR和复位优先触发器指令RS两种。置位优先触发器是一个置位优先的锁存器。当置位信号(S1)和复位信号(R)都为真时,输出为“1”。复位优先触发器是一个复位优先的锁存器。当 ...
西门子PLC的逻辑堆栈操作指令
一、 TC35 调制解调器AT 指令简介
要使用TC35 发送短消息需要使用TC35 的AT 指令,我们介绍如何用bbbbbbs 自带的超级终端连接TC35发送短消息。
1. 用九针直通的电缆将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的网站上找到,这里我们将介绍如何发送中文短消息。要发送中文短消息必须把短消息内容转换成Unicode 码,并按照PDU 格式打
包发送给TC35。PDU 数据格式涉及手机开发的相关知识,我们不作详细介绍,这里指给出一个标准格式供大家使用。以下就是一个PDU格式的数据包:
0001000D965F700080459296C14
其中,红色的数字(3108214365F7)代表对方的手机号码,在PDU格式中,手机号码每两位需要对调。比如在上面这个例子里,对方的手机号码为,F 用来补充
7 后面的空位。蓝色的数字(59296C14)是短消息内容的Unicode 码,这里5929 代表“天”6C14代表“气”。Unicode码同样可以用来表示中一般英文字母和数字,方法是在英文或数字的ASCII前加00。紫色的数字(04)代表短消息的长度,它等于其后所有字符个数除以2。黑色的数字每次发送短消息时都是相同的,使用时可以照抄,但前提是所使用的SIM卡在使用前要用手机设置好短消息服务中心号码(+86)。汉字的Unicode码可以通过编码转换软件得到,我们使用的是Megaton Technology 公司的一个编码转换软件
9. 在使用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. 通过指令AT+IPR=9600 设置TC35 的端口波特率为9 600 bps
2. 重新建立一个波特率为9 600 bps 的连接,用指令ATE0禁止回波功能。回波功能使调制解调器将收到的指令回发给发送方,这项功能会给PLC 编程来来不便,当禁止回波功能后,TC35只返回指令执行的结果,比如OK 等等
3. 键入AT&W0 回车将当前设置存为用户配置文件(掉电保持),再键入ATZ0 以用户配置文件重新启动。此后TC35重新上电时将按照前面所作的设置启动。
三、 PLC 编程
现在,我们已经知道如何用AT 指令发送短消息,剩下的工作是用PLC 程序来发送这些AT指令。S7-200 的通讯端口为RS-485接口,RS-485 接口为半双工接口,编写PLC 程序的
关键是避免在通讯端口上发送和接收。我们下面将介绍一种标准的编程模式,按照这种模式编写自由口通讯程序可以有效的避免因发送和接收造成的通讯冲突,从而保证程序的正常运行。
四、
这里我们以下自由口编程的一般原则:
1. SM0.1 触发端口初始化,连接发送完成和接收完成中断(中断事件9 和23)
2. SM0.0 触发RCV 指令
3. XMT 指令用上升沿触发,并在指令运行前先停止端口0 的接收(复位SM87.7,执行RCV 指令)
4. 在发送完成中断中,重新置端口0 为接收状态(置位SM87.7,执行RCV 指令),清空RCV 指令的接收缓冲区
5. 尽量减少在中断程序中编程,如果时间允许仅在中断程序中置标志位,在主程序中扫描该位执行具体的程序
6. 根据将要接收信息的不同,合理设置SMB87~SMB94