S7协议(共4篇)
S7协议 篇1
1 前言
在使用西门子S7-200 PLC的中, 因为其通讯协议不公开, 经常导致客户自己开发监控软件同PLC通讯连接出现困难。本文尝试研究通过以太网读取西门子S200 PLC数据块及寄存器功能。
由于西门子的S7协议是不公开的协议, 所以本文的研究方式是通过监听通讯帧, 抓取数据包, 然后推测协议的格式、定义及意义。
本文的目的, 是能让用户自己编写程序, 用自己的程序读取西门子S-7 200 PLC的I、Q、M、DB区数据。
由于本人主要使用以太网与PLC通讯, 所以重点介绍ISO on TCP的通讯方式。但从网上的资料看出, S200的PPI协议、MPI协议其核心都是S7协议。相信本文对想通过MPI或PPI连接的用户也有一定的帮助。
2 ISO on TCP的模型
I S O (International Organization for Standardization) 国际标准化组织制定了OSI (Open System Interconnection) 7层模型, 包括:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
西门子S7-200网络通讯使用的是:TCP/IP+ISO TP+S7协议。如图1。
通讯过程是:
(1) TCP三次握手建立通讯TCP连接。
(2) ISO_TP连接建立。
(3) S7协议连接请求、应答建立连接。
(4) 实现S7协议读取数据。其过程如图2。
3 RFC1006
由于S7-200网络通讯, 是使用的ISOTCP, 先简要介绍一下ISO TP。如要更清晰了解ISO TP内容, 请参考RFC1006及RFC983文档。
3.1 帧格式
ISO TP帧分为两部分, 一部分为帧头, 一部分为TPDU
ISO TP的帧分为4中帧分别是:
(1) CR:connect request (连接请求) ;
(2) CC:connect confirm (连接应答帧) ;
(3) DR:disconnect request (断开请求帧) ;
(4) DT:data (数据帧) ;
(5) ED:expedited data (扩展数据帧) 。
对这5种类型帧, 帧头格式一样, TPDU格式不同。
3.2 帧头格式
Vrsn版本:03;Reserved:保留;packet length从vrsn到数据结尾长度, 包括Vrsn。
3.3 TPDU格式
3.3.1 CR (连接请求) 、CC (连接应答帧) 的TPDU格式
如表1所示。
(1) header length:TPDU到帧尾长度, 不包括header length这个字节。
(2) code:TPDU类型, 4个bit位。0xe (1110) 为连接请求CR;0xd (1101) 为连接确认CC;0x8 (1000) 为断开连接请求DR;0x F (1111) 为数据帧DT;0x1 (0001) 为扩展数据帧ED。
(3) Credit:保留, 总是0。
(4) destination reference:目的reference, 在S200通讯中总是0。
(5) source reference:目的reference, 在S200的通讯中, 为连续次数 (在RFC983中定义该部分为0) 。
(6) class:4bits发送端总是0, 接受端忽略。
(7) options:4bits发送端总是0, 接受端忽略。
(8) variable data:该部分可传输多个参数, 每个参数部分为:参数码 (1Byte) +参数长度 (1Byte) +参数值 (N Byte) 。
在S7-200以太网通讯中, variable data共有三组参数。参数1 (C1) 为PLC端的连接通道号、PLC机架号、PLC槽号;参数2 (C2) 为远端连接通道号、机架号、槽号;参数3 (C3) 为0x0A。
3.3.2 ED (扩充) 的TPDU格式
如表2所示。
header length部分、code部分、credit部分, 内容同表2。
PDU-NR and EOT:0x80 (1000 0000) 表示该帧包括帧尾, 即该帧独立, 没有后续数据;其他数据忽略。
4 S7协议
西门子的S7通讯协议, 是一组复杂的多功能协议, 可下载程序, 上次程序, 操作PLC, 读取数据等。本篇只针对S7-200数据读取功能部分进行解读。由于S7协议为没有公开资料, 所以解读可能与实际存在差异。
4.1 S7协议连接
在S7协议层, 客户端读取S7-200数据前, 需要先建立连接。以下是客户端连接请求及PLC的连接应答帧。
(1) 连接请求帧为:32 01 00 00 cc c1 0008 00 00 f0 00 00 01 00 01 03 c0
(2) 连接应答帧为:32 03 00 00 cc c1 0008 00 00 00 00 f0 00 00 01 00 01 00 f0
该部分尚未知确切的含义。
4.2 S7读命令
4.2.1 命令
如表3所示。
标示符【0】:0x32为帧开始标示符。
请求应答标识【1】:0x01为发送命令帧;0x03为应答帧。
保留【2~3】:保留或未知, 填充0x00。
事务处理标识【4~5】:请求、应答事务标识, 应答帧直接复制返回该部分。
命令长度【6~7】:填充从命令符开始, 到帧结束的字节长度, 包括命令本身的1个字节。
保留【8~9】:保留, 填充0x00;
命令符【10】:命令符, 0x04为读命令, 0x05为写命令。
读取数据段数【11】:该部分为”读取数据段”个数。S7协议支持一次读取多个不连续地址的数据, 读取段个数为本次读取命令要读取不连续数据段的数目。
读取数据段命令域【12~23】:在读取多个不连续地址的数据时, 该部分可重复出现。具体含义:
命令域子段标示头【12】:读取数据段命令域的标识头, 为0x12;
命令域子段长度【13】;命令域子端的长度, 该字节后, 到本命令域子段的长度。
未知【14】:该字节未知确切的含义, 通常为0x10。
数据类型【15】:0x01 bit;0x02 byte;0x04为float
读取字节【16~17】:本命令段读取字节长度;
数据块编号【18~19】:读取数据块的编号, 为I、Q、M等区, 为0;
寄存器类型【20】:读取寄存类型, 0x04顺序控制继电器区 (S) ;0x05特殊存储器区 (SM) ;0x06模拟量输入映象区 (AI) ;0x07模拟量输出映象区 (AQ) ;0x1E:计数器存储器区 (C) ;0x81数字量输入寄存器 (I) ;0x82数字量输出寄存器 (Q) ;0x83位存储器区 (M) ;0x84变量存储器 (V) ;0x1F定时器存储器区 (T) 。
偏移地址【20】:开始读取量的偏移地址, 安bit计算。
4.3 S7读应答
应答
如表4所示。
标示符【0】:0x32为帧开始标示符。
请求应答标识【1】:0x03为应答帧。
保留【2~3】:保留或未知, 填充0x00。
事务处理标识【4~5】:直接复制请求帧该部分, 然后填充返回。
执行命令返回值【6~7】:推测是执行命令的结果代码。推测0x02为执行OK。
数据帧长度【8~9】:从“数据段个数[13]”后, 到帧尾的数据长度。
保留【10~11】:保留或未知, 填充0x00。
命令符【12】:命令符, 0x04为读命令, 0x05为写命令。
数据段个数【13】:返回的数据段数
数据段:根据读取不连续地址命令, 一个应答帧可包含多个读取的数据段。具体含义:
子数据段标示符【14】:0x FF子数据段标示符。
有效性【15】:该项表示的意义不太确定, 推测为该数据段数据的有效性。
数据长度【16~17】:子数据段的数据长度, 按bit位计算。
子数据段数据【N】:返回的数据。
5 编程试验
根据以上协议, 编程实现通过以太网, 读取S7-200PLC数据。读取QB0、MB0的界面如图3。
摘要:西门子S7-200 PLC网络模块采用S7协议通讯, 本文分析S7协议的内容与帧格式, 其目的是能够让客户自己编写程序, 用自己的socket程序通过以太网读写西门子S200 PLC区数据。本文对要通过编写程序读取S7-1200、S7-300、S7-400的读者也有帮助。
关键词:S7-200,S7协议,以太网通讯,TCP/IP
参考文献
[1]RFC983.ISO Transport Services on Top of the TCP.
[2]RFC1006.ISO Transport Service on top of the TCP.
S7协议 篇2
通用串行接口协议, 该协议是由西门子公司专为变频器通信而开发出来的通用通行协议, 它可以支持变频器与PLC之间的通信连接, 利用串行总线进行数据交换的一种协议。
S7—200PLC可以将其通信端口设置为自由口模式的USS协议, 可以实现PLC对变频器的控制, USS协议是主—从结构协议, 规定了USS总线上可以有一个主站 (PLC) 和最多31个从站 (变频器) , 总站上的每一个从站都有唯一的标识码 (即站地址, 在从站参数中设定) , 主站依靠标识码识别各个从站, 每个从站也可以对主站发来的信息报文做出响应并回应报文, 从站与从站之间不能直接进行数据通信, 另外还有一种广播通信方式, 主站可以同时给所有的从站发送报文, 从站在接受报文并做出相应的响应后不必会送报文。
2 使用USS通信协议有很多的优势
在利用PLC对变频器进行控制时, 多采用面板和端子进行控制, PLC输出数字量来控制变频器的启动和停止, 也可以依靠PLC的模拟量输出来控制变频器的速度, 但是这样做有很多的弊端: (1) 在设计控制电路时需要很多的硬件, 设计成本提高。 (2) 在现场布线时比较复杂, 线和线之间容易引起相互的干扰和影响。 (3) PLC与变频器之间由于受到硬件的限制, 彼此之间交换的信息量很少。 (4) 在控制变频器的启动与停止时, 由于存在硬件动作时间延时的影响, 如交流接触器的主、辅触点的动作延时, 会影响控制的精度。 (5) 如果变频器出现故障时, 变频器只能从一个输出点输出, PLC能得到变频器的故障状态, 但是不能准确判断当发生故障时, 变频器是处在何种状态。
为了能够准确地控制变频器, 减少布线的压力和降低成本, 我们可以使用USS通讯协议方式来控制变频器, 西门子变频器都可以利用网络的方式与PLC进行信息交换, 进行数字化的信息传送, 这样做能够克服以上缺点, 极大提高系统的自动化控制水平和运行的可靠性。
另外USS通信时的刷新周期与PLC的扫描周期是不同步的, 一般要完成一次USS通信需要几个扫描周期, 通信时间与链路上的变频器的台数有关系, 还与波特率和扫描周期有关。如果PLC的通信波特率设定在19.2Kbps, 有三台变频器挂在总线上, 经过实际测试检测通信时间大约是50ms左右。
3 如何利用S7—200对MM440变频器进行控制
3.1 硬件连接:
一般情况下, USS通信电缆采用双绞线即可, 如果干扰比较严重, 可以采用屏蔽双绞线, 也可以采用Profibus-DP电缆, 在采用屏蔽双绞线作为通信电缆时, 把具有不同电位参考点的设备连接在一起, 在互连电缆中会产生不应有的电流, 从而造成通信口的损坏。所以为了保护通信电缆上的设备, 可以采用的方法一是采用共用的电路参考点, 另外也可以采用相互隔离的方法, 以防止电路中产生不应有的电流产生, 屏蔽线必须连接到机箱接地点或9芯D型插头的插针1, 而且建议将变频器的0V端子连接到机箱接地点上。从PLC下载端口引出下载线, 把3号端子的引线接到MM420变频器14端子上, 把8号端子的引线接到MM420变频器15端子上。如果使用DP接线头, 那么终端电阻要打在关闭状态, 终端电阻的作用是用来防止信号反射的, 并不是用来抗干扰的, 如果通讯距离很近, 波特率较低或点对点通信的情况下, 可不用终端电阻。在多点通信的情况下, 一般只需要在USS主站上首尾端家终端电阻就可以取得良好的通信效果。为了保护好被通信的设备, 不要带电插拔USS通信电缆, 尤其是正在通信的过程中, 这样很容易损坏变频器和PLC的通讯端口, 如果是大功率的变频器, 即使变频器断电也要等到变频器的电容彻底放电后, 再去插拔通信电缆。
3.2 PLC的编程:
在PLC编程软件的界面上, 我们找不到USS协议, 所以在使用USS协议之前, 需要安装西门子的指令库, 可以在网站上下载和安装后才可以使用。
3.3
USS协议需要占用PLC的通信端口0或1, 使用USS_INIT指令可以选择PLC的端口是使用USS协议还是PPI协议, 选择USS协议后PLC的相应端口不能再做其他用途, 包括与STEP7-Wicro/WIN的通信, 只有通过执行另外一条指令或将PLC的模式开关拨到STOP状态后, 才能重新再进行PPI通信。当PLC与变频器的通信中断时, 变频器将自动停止运行, 建议使用PLC226, 因为它有两个通信端口, 当第一个端口用于USS通信时, 第二个端口可以用于程序的检测。
3.4 程序的编写:
初始化调用:
Mode:1表示将端口0分配给USS通信协议, 并启用该协议。输入值0将端口0分配给PPI, 并禁止USS协议;Baud:通讯的波特率选择9600;Active:链路中的变频器的通信地址为0;Done:当该指令完成后, 该位变为1;Error:把错误信息放置在VB100地址里。
Uss_ctrl指令用于控制Micro Master驱动器的激活:
利用SM0.0把USS__Ctrl激活, i0.6为1时启动变频器运行;i0.5为1时按减速模式停机;i0.4为1时按快速停车模式停机;i0.3为故障确认信息, 当i0.3从0转为1时, 驱动器清除故障;i0.2为变频器的方向, 1为正转, 0为反转;要控制的是地址为0的变频器;变频器的型号为MM440;速度设定值100.0;m10.1为收到应答, 每次S7-200从驱动器收到应答时, Resp_R位均会打开, 进行一次扫描, 所有以下数值均被更新;VW200为来自变频器的状态字, 表示当时的实际运行状态;VD400为变频器的返回的实际运行速度;m10.2为变频器返回的的运行状态信号, 1表示为正在运行, 0表示为已停止;m10.2为变频器返回的运行方向, 1表示为正转, 0表示为反转;m10.4为变频器返回的禁止状态信号, 1表示为禁止, 0表示为开放;m10.5为故障指示位, 0-无故障, 1-故障。
USS协议读取指令的调用:
利用i0.1的上升沿来读取变频器的实际运行频率, 变频器的地址为0, 读取的变频器参数为3, 变频器参数的下标为0, 把这些命令存放在VD120存储空间里;m10.6为完成位, VB100表示错误, 变频器返回的参数值存放在VW130空间里。
USS协议写入指令的调用:
利用i0.0的上升沿来写入控制变频器的命令, 控制变频器的地址为0, 控制变频器的参数为10, 变频器参数10的下标为0, 写入到变频器的参数值为30, 把这些命令存放在VD150存储空间里;m10.7为完成位, VB100表示错误, 当变频器关断后, 信息存储在EEPROM中。
3.5 设置变频器的参数:
(1) 参数复位:P0010=30 P0970=1
(2) 快速调试:P0010=1 P0304=额定电压P0305=额定电流P0307=额定功率P0310=电机的额定频率P0311=电机的额定转速
(3) 设置参数:
P2012.2=2 (USS协议的PZD长度, 即过程数据的长度)
P2013.0=127 (USS协议的PKW长度, 等于127表示PKW长度是可变的) P0003=3 (访问等级)
P0700=5 (选择命令源, =5 COM链路的USS设置)
P1000=5 (频率设定值的选择=5通过COM链路的USS设定)
P1120=5 (斜坡上升时间5S) P1121=4 (斜坡下降时间4S)
P2000=25 (基准频率) P2009.0=0 (USS规格化)
P2010.0=6 (USS协议波特率=6是9600波特)
P2011.0=0 (USS地址, 为变频器指定一个唯一的串行通讯地址)
P2014.0=0 (USS协议的停止传输时间)
P0971=1 (从RAM向EEPROM传输时间)
4 总结
通过这样的连线、PLC的编程、变频器的参数设置之后, 在i0.5和i0.4为低电平时, 按下i0.6按钮, 地址为0的变频器开始启动, 启动的速度为100%, 方向为当i0.2为低电平时为反转, 当i0.2为高电平时为正转。
如果想改变变频器的参数, 以改变P0010为例, 如果原来的参数为0, 现在想改变为10时, 采用USS协议写入指令完成对变频器0的控制, 如果想读取变频器的参数时, 采用USS协议读取指令完成对变频器的参数监控。
参考文献
[1]陶权.变频器应用技术.华南理工大学出版社, 2007.
[2]李自先.变频器实用技术与维修精要.人民邮电出版社, 2009.
S7协议 篇3
如何从原有控制系统可靠读取各种工艺数据是本次改造工作的难点。现介绍在实际技改工程中, 以S7-200PLC为主站、FX2N PLC为从站, 实现三菱公司专用计算机链接通信协议的技术方案, 给出S7-200PLC与第三方PLC数据通信的一般方法。
1 系统构成
生产线原有控制系统采用三菱FX2N-128MR型PLC作为主控制器, 由于厂家已对PLC程序进行加密且控制柜内空余空间较小, 无法通过增加扩展模块、修改程序的方式完成改造任务。经过比较分析, 选用S7-200系列的CPU224-XP型PLC来实现技改工程相关控制要求, 并配备CP243-1以太网模块向厂级局域网传输现场数据, 局域网内的数据服务器安装西门子PC-Access OPC服务器软件和网络版组态王6.52版软件, 完成数据采集、温度PID控制和各种Web应用。系统软、硬件配置如图1所示。
2 通信方案的提出及分析
2.1 S7-200PLC串行通信功能介绍
S7-200PLC编程口支持RS485半双工串行通信, 其默认通信协议为西门子专用PPI (Point-to-Point) 协议, 该协议可实现逻辑下装、仿真调试及多个S7-200PLC之间的数据访问等功能。
为了能与第三方设备实现通信, S7-200PLC编程口允许定义为自由口 (Free-Port) 工作模式, 通信协议可由用户自行定义并通过编程实现[2]。
在本应用中, 利用CPU224-XP的 Port1口编程实现三菱专用计算机链接协议, 以读取FX2N PLC的内部数据。
2.2 FX2N PLC与第三方设备串行通信方案分析
一般来讲, 诸如智能仪表、打印机、条形码阅读器及个人计算机等第三方设备要与三菱FX系列PLC通信, 可以通过以下3种方式:
a. 如果第三方设备支持全双工通信方式, 则可通过编制主站 (第三方设备) 通信程序, 第三方设备可以利用三菱FX系列 PLC专用的编程语言协议直接与三菱PLC本机集成的编程口通信, 达到访问PLC内部不同数据区域的目的, 通信接口可以选择RS422或RS232C[3];
b. 第三方设备支持半双工通信方式, 通过编制主站 (第三方设备) 通信程序, 第三方设备可以利用三菱FX系列 PLC专用的计算机链接协议达到访问PLC内部不同数据区域的目的, 但首先要为三菱FX系列 PLC配备半双工通信扩展模块FX-485-BD, 通信接口一般为RS485;
c. 如果第三方设备不具备编程能力, 首先需要给三菱FX系列 PLC配备相应的通信扩展模块FX-485-BD或FX-232-BD, 并在三菱PLC内编制符合第三方设备协议的通信程序, 方可完成两者之间的数据通信。
本应用选择第2种通信方式, 即将S7-200PLC作为主站, 在S7-200PLC内编程实现支持FX系列PLC计算机链接协议的主站通信程序, 以实现S7-200PLC与FX2N PLC间的串行通信。
3 FX2N PLC计算机链接协议
3.1 计算机链接协议传输原理
计算机链接协议是三菱公司为了解决计算机与FX系列PLC子站间通信问题而设计的专用协议集, 该协议集是一种典型的面向字符的命令/响应型通信协议, 其传输原理如图2所示。其中, FX- 485-BD为三菱扩展RS485通信模块。
首先, 由主站计算机发出命令通信帧, 如果从站接收到有效的命令, 从站PLC将响应数据发回, 计算机确认后发出应答帧;如果从站未接收到有效的命令通信帧, 从站PLC将发出不确认帧, 计算机接收到该通信帧后进行错误处理。
通过分析计算机链接协议的传输原理可以得出:计算机链接协议的物理层为RS485半双工串行网络, 应用层为面向ASCII码的命令/响应字节流。因此, 可以使用S7-200PLC模拟主站计算机, 编制计算机链接协议中的主站通信程序, 实现S7-200PLC与三菱FX2N PLC之间的串行通信。
3.2 计算机链接协议通信格式
计算机链接协议的通信帧格式如图2所示。其中, ENQ是控制码, 固定取值为05H;NAK为否定响应标识码, 固定取值为15H;站号是三菱FX系列PLC的地址, 由数据寄存器D8121决定, 可以设定为0~15之间的值;PC号是三菱FX系列PLC用来确定可编程序控制器CPU的数字号码, FX2N系列PLC的默认值为FFH;命令用来指定要求的操作, 笔者使用了“读16位字”命令, 命令代码为57H, 52H两字节数字;消息等待是计算机要求的一个延迟时间, 以实现发送和接收状态间的切换, 针对S7-200PLC, 可按照S7-200PLC手册中规定的不同波特率下的电缆切换时间进行选择;和校验代码用来确定消息中的数据没有受到破坏, 其计算方法是按字节累加和校验区域中的ASCII值, 并将计算结果转化为两字节的ASCII值得到。
4 计算机链接协议的实现
4.1 通信接口连接
S7-200PLC与FX2N PLC之间的通信接口连线较为简单 (图4) , S7-200PLC通信口为9针串口, 其中1针脚定义为信号地;3针脚定义为RS485的DATA-B;8针脚定义为RS485的DATA-A[4]。对于FX-485-BD接口板而言, 可将SDA和RDA短接后与S7-200PLC通信口的8针脚连接, 将SDB和RDB短接后与通信口的3针脚连接, 最后将SG与通信口的1针脚连接。
4.2 从站实现
一般来说, 三菱FX2N PLC内部已固化计算机链接协议的从站功能, 用户只需在系统初始化过程中设置两个特殊数据寄存器, 就可使三菱FX2N PLC具有计算机链接协议的从站功能。
4.2.1 通信格式寄存器
通信格式寄存器 (D8120) 为16位寄存器, 它决定了扩展通信口特性参数寄存器 (表1) 。用户可根据具体要求进行设定, 比如:可将通信特性参数设置为8位数据位、无校验、1位停止位、波特率9 600b/s、无标题符和结束符、RS485接口、专用协议 (计算机链接协议) 、自动添加和校验。传输控制协议采用协议格式1, 满足以上要求的通信特征参数用十六进制表示为6081H。
4.2.2 站地址寄存器
站地址寄存器D8121为16位寄存器, 三菱FX2N PLC的从站地址可以设定为0~15之间的值。由于本次应用FX2N PLC从站只有一个, 故将D8121设定为0。
在编制三菱FX2N PLC程序时, 可以利用其内部定义的系统位M8002完成通信初始化工作, 即在PLC上电第1次运行时, 对特殊寄存器D8120和D8121初始化, FX2N PLC子站通信初始化程序如图5所示。
4.3 主站实现
S7-200PLC通信主站程序由通信初始化子程序、和校验子程序、ASCII码到十六进制数据转换子程序、通信处理总调度子程序、发送完成中断子程序、接收报文首字符中断子程序以及报文接收中断子程序等组成。在主程序中, 通过调用通信处理总调度子程序来完成报文收发。
4.3.1 通信初始化子程序
该子程序具有两个功能:设置编程口的各种特征信息, 包括波特率、数据位数、停止位数、校验类型和编程口的工作方式;为使能系统中断, 使系统可以响应报文发送完成中断和字符接收中断。该子程序只在PLC上电第一次运行时执行一次。
4.3.2 和校验子程序
该子程序的功能为当PLC收到完整的报文响应帧后, 计算和校验的值, 当计算值与通信来的和校验相同时调用ASCII码到十六进制数据转换子程序, 得到真实的过程数据[5]。在编制和校验子程序的过程中, 采用for循环指令并利用指针操作可以大大减少代码的编写量[6]。
4.3.3 ASCII码到十六进制数据转换子程序
该子程序的功能为当和校验无误后, 应该将接收到的ASCII码转化为十六进制数, 4个字节的ASCII码转换为一个16位的数据字。
4.3.4 发送完成中断子程序
该中断子程序的功能是只有当系统确实将命令帧完全发出时, 才使能字符接收中断子程序。
4.3.5 接收报文首字符中断子程序
该中断子程序的功能是判断有效的响应报文首字符, 如果接收到的字符为02H, 表示后续的报文为正常通信数据;如果为15H, 表示PLC没有接收到正确的命令帧;如果为其他字符, 表示还没有接收到有效的报文起始符。当接收到02H或15H, 系统将重新定义字符接收中断子程序, 将字符接收中断事件映射到报文接收中断子程序, 利用其完成接收后续字符的工作。
4.3.6 报文接收中断子程序
当系统接收到有效起始字符后, 由报文接收中断继续接收后续报文, 并将接收寄存器的内容保存到接收缓冲区, 当接收到的字符数量与预先定义的报文长度相同时, 程序将停止接收, 并复位发送标志位。
4.3.7 通信处理总调度子程序
该子程序通过有限状态机完成报文收发的全部过程控制, 其主要功能有:
a. 上一次通信完成后, 每隔3s发送下一次命令帧;
b. 命令帧发送后, 如果1s内未收到有效的响应帧, 将置位超时标志;
c. 超时报警2s后, 将重新发送命令帧, 避免出现通信“死锁”;
d. 为了节省处理时间, 对异常响应帧 (即起始字符为15H的响应报文) 不做处理, 直接丢弃。
主程序每次扫描将调用通信处理总调度子程序 (图6) 来完成所有与通信相关的各项工作, 在程序内部根据状态机的具体状态决定工作内容。
5 结束语
笔者详细介绍了运用FX系列PLC专用计算机链接协议实现S7-200PLC与FX2N PLC之间串行通信的技术方案, 提出了实现S7-200PLC与第三方PLC之间数据通信的一般方法。系统投入运行以来未发生任何通信中断故障, 表明该方法能快速、可靠地实现两者之间的通信, 能自动处理通信故障并在异常情况下自动恢复通信链接。
参考文献
[1]淡勇.HFC-134a预热器失效分析[J].化工机械, 2010, 37 (1) :103~106, 117.
[2]魏霞.基于OLE自动化技术的温湿度监控系统的实现[J].自动化仪表, 2005, 26 (11) :47~48.
[3]柳剑.基于编程口的三菱PLC与PC机串行通信实现[J].自动化仪表, 2010, 31 (11) :31~33.
[4]云苏和.JX-300XP和S7-300PLC的数据通信[J].化工自动化及仪表, 2011, 38 (8) :1023~1024.
[5]李生军.单片机与PLC之间的串行通信实现[J].化工自动化及仪表, 2011, 37 (2) :78~80.
S7协议 篇4
关键词:PLC硬件,软件
0 引言
S7-200 SMART是西门子公司推出的高性价比小型PLC,是国内广泛使用的S7-200的更新换代产品。S7-200SMART PLC、SMART LINE触摸屏、V20变频器和V80/V60伺服系统完美整合,无缝集成,为OEM客户带来高性价比的小型自动化解决方案,可以满足客户对人机交互、控制、驱动等功能的全方位需求。
1 硬件比较
1.1 CPU模块
因为配备了西门子的专用高速处理器芯片,S7-200SMART的基本指令执行时间达0.15μs。S7-200的CPU模块集成的I/O点数最多只有40点(CPU 226)。S7-200SMART的CPU模块集成的I/O点数最多有60点。I/O点数多的CPU性价比更高。
S7-200 SMART的CPU模块分为标准型和经济型,产品配置更加灵活,可以最大限度地控制成本。
和S7-1200一样,S7-200 SMART的CPU内可以安装1块信号板,使用户配置更为灵活,有1点模拟量输出、2数字量输入/2数字量输出和RS-485/232这3种信号板可供选择。
1.2 通信功能
S7-200只有CPU 224XP和CPU 226有2个RS-485接口,其它CPU模块只有1个RS-485接口,可通过扩展EM 227 Profibus-DP从站模块或CP 243-1以太网模块来增加通信功能,但是这2种模块的价格都很高。
S7-200 SMART的CPU模块有1个RS-485接口、1个以太网接口,此外还可以用廉价的信号板扩展1个RS-485或RS-232接口。
S7-200 SMART通过以太网用普通的网线就可以实现程序的下载和监控,方便快捷,省去了专用编程电缆。以太网接口还可以与其它CPU模块、触摸屏和计算机进行通信和组网。用以太网和交换机(或路由器)实现多台S7-200 SMART、触摸屏和计算机的通信非常方便。
S7-200 SMART CPU集成的RS-485端口和RS-232/485信号板支持Modbus RTU、PPI和USS协议,还可以实现自由端口通信。
S7-200用19.2kB/s的波特率下载一个30多kB的项目需要8s,而S7-200 SMART用以太网下载一瞬间就可完成。S7-1200因为程序很大,完成同样任务的程序用以太网下载的速度和S7-200差不多。
与S7-200 SMART配套的触摸屏SMART 700 IE在淘宝网上的价格为900多元,它们之间可以用以太网或RS-485接口通信。S7-200 SMART的每个通信接口可以连接4块触摸屏。如果使用以太网通信,那以它们之间可以快速交换数据,触摸屏的画面反应速度快。
1.3 高速输入和位置控制
S7-200 SMART的场效应管输出的CPU模块有3路100kHz的高速脉冲输出,支持PWM/PTO输出方式以及多种运动控制模式,可以自由设置运动曲线,相当于集成了S7-200的位置控制模块EM 253的功能(EM 253的售价约为2 000元)。S7-200 SMART有方便易用的运动控制向导功能,可以快速实现设备调速、定位等功能。
S7-200的CPU只有2路高速脉冲输出,仅CPU224XP的高速脉冲输出频率为100kHz,其它CPU的输出频率只有20kHz。
1.4 存储卡
S7-1200的24M SIMATIC存储卡可以用来更新操作系统,但是价格高达1 000多元,和CPU模块的价格差不多。
S7-200 SMART使用通用的Micro SD卡,可以传送程序、更新CPU的固件和恢复CPU的出厂设置,24M的Micro SD卡的售价仅30多元。
1.5 价格的优势
S7-200 SMART的CPU模块分为标准型和经济型,40点经济型的CPU CR40在淘宝网上的售价仅为900多元,与24点的S7-200的CPU 224的价格差不多。60点的S7-200 SMART CPU的价格与S7-200 40点的CPU 226差不多。
2 软件比较
S7-200 SMART继承了S7-200的优点,例如先进的程序结构、强大的通信功能、简化复杂任务的向导和库、PID参数自整定功能等,用系统块设置硬件结构和参数方便直观。
S7-200 SMART的编程语言、指令系统和监控方法与S7-200兼容。除了少数几条与硬件有关的指令,其它指令与S7-200完全相同。熟悉S7-200的用户几乎不需要任何培训就可以使用S7-200 SMART。
与S7-200一样,S7-200 SMART的编程软件集成了简易快捷的向导设置功能,只需按照向导的提示,就可以完成复杂功能的大量的参数设置,自动生成有关的子程序、数据块和符号表。
S7-200 SMART的编程软件自带Modbus RTU指令库和USS协议指令库,S7-200需要用户安装这些库。Modbus主站指令和从站指令读写相同字节数数据的时间、初始化Modbus RTU的CRC表格的时间不到S7-200的1/20。而S7-200 SMART的2个RS-485接口都可以作Modbus RTU的从站,S7-200只有1个RS-485接口可以作Modbus RTU的从站。
与S7-200相比,S7-200 SMART的堆栈由9层增加到32层,中断程序调用子程序的嵌套层数由1层增加到4层。
S7-200的编程软件同时只能显示程序编辑器、符号表、状态表、数据块和交叉引用表中的一个。S7-200SMART的变量表、输出窗口、交叉引用表、数据块、符号表、状态图表均可以浮动、隐藏和停靠在程序编辑器或软件界面的四周,浮动时可以调节表格的大小和位置,可以同时打开和显示多个窗口。项目树窗口也可以浮动、隐藏和停靠在其它位置。
S7-200 SMART的帮助增加了搜索功能,指令的帮助不像S7-200那样有固定的区域,整个窗口区都可以滚动。
光标放到S7-200 SMART编程软件的指令上时,将出现一个小窗口,显示该指令的名称和输入、输出参数的数据类型。
S7-200 SMART的编程软件短小精干,仅有80多MB。S7-200的编程软件有300多MB。S7-1200的编程软件Step 7 Basic V11有3个多GB。
参考文献
[1]崔坚.西门子S7可编程序控制器——STEP7编程指南[M].第2版.北京:机械工业出版社,2010
【S7协议】推荐阅读:
三方协议代理协议05-18
就业实习协议、安全协议05-27
寒假安全协议协议书06-09
http协议tcpip协议07-26
摄影机构合作协议(外联协议)07-30
有关借款协议协议书08-20
三方协议与实习协议的区别08-20
代收代付合同协议书协议范例06-30
移动室分协议 2014年协议07-07
售车协议 车辆转让合同 卖车协议07-02