6ES7214-1AD23-0XB8多仓发货
6ES7214-1AD23-0XB8多仓发货
1 引言
西门子S7-200PLC是德国西门子公司生产的小型PLC。S7-200以其高可靠性、指令丰富、内置功能丰富、强劲的通讯能力、较高的性价比等特点,在工业控制领域中被广泛应用。S7-200PLC的突出特点之一是自由口通讯功能。如何实现S7-200PLC与个人计算机的互联通信,是S7-200PLC应用的技术关键。
可编程控制器与计算机之间的通讯一般是通过RS-422口或RS-232C口进行的,信息交换的方式为字符串方式,运用RS-232C或RS-422通道,容易配置一个与计算机进行通信的系统,将所有软元件的数据和状态用可编程控制器送入计算机,由计算机采集这些数据,进行分析及运行状态监测。用计算机改变可编程控制器设备的初始值和设定值,从而实现计算机与可编程控制器的直接控制,一旦确定了可编程控制器的控制指令,就能很方便地与计算机连接。
2 S7-200的自由口通讯模式
S7-200支持多种通讯模式,如点点接口(PPI)、多点接口(MPI)、Rrofibus DP等。PPI等通讯协议主要用于西门子系列产品之间的通讯以及对PLC编程。在自由口模式下,可由用户控制串行通讯接口,实现用户自定义的通讯协议。用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。在自由口模式下,通信协议完全由梯形图程序控制。
S7-200CPU上的通信口是与RS-485兼容的9针D型连接器,PLC还提供了实现 RS-485与 PC机上RS-232C相连接的PC/PPI电缆,利用它可以方便地实现S7-200系列PLC与PC之间的硬件连接。
S7-200的编程软件为STEP7-Micro/WIN32,该软件有STL、FBD和Ladder三种编程模式,有SIMATIC指令和IEC131-3指令两种指令。本文所给出的范例是使用SIMATIC指令的STL编程。
3 S7-200 PLC端的通讯程序实现
PLC程序分为主程序和中断程序。主程序完成初始化通信口、开中断、判断、发送数据等功能,中断程序完成接收和发送数据的功能。接收指令(RCV)启动或终止接收信息功能,必须为接收操作指定开始和结束条件。发送指令(XMT)在自由口模式下依靠通讯口发送数据。
3.1 控制字的选取
反映CPU工作方式的模式开关当前位置的特殊存储器位为SM0.7,它控制自由端口模式的进入。当SM0.7为0时,模式开关处于TREM位置;当SM0.7为1时模式开关处于RUN位置。而只有当模式开关位于RUN位置时,才允许进行自由口通讯。SMB30是自由口模式控制字节,用来设定校验方式、通讯协议、波特率等通讯参数(其它控制字的设定参阅有关书籍)。
3.2 程序的一些简单介绍
NETWORK1
LD SM0.1 // 次扫描
MOVB 16#09,SMB30
//自由口通讯模式:9600波特率,无奇偶校验,8个数据位
MOVB 16#7C,SMB87 //接收信息状态字节
MOVB 16#53,SMB88
//设置信息的开始字符“S”
MOVB 16#45,SMB89
//设置信息的结束字符“E”
MOVW +5,SMW90
//设定空闲行的时间间隔(ms)
MOVW +179,SMW92
//字符间/信息间定时器超时值(ms)
MOVB 60,SMB94 //接收字符的个数
NETWORK2
LD SM0.1 MOVB 16#53,VB2499
//设置接收和发送缓冲区的首地址
ATCH 发送完中断,9
//把发送完成中断和发送完成中断子程序连接起来
ATCH 接收完中断,23
//把接收完成中断和接收完成中断子程序连接起来
ENI //允许中断
PLC程序的主要流程框图如图1所示:
图1 PLC程序流程4 自由口通讯在PC 端程序实现
为了充分利用计算机数据处理的强大功能,可以在上位机编写程序来实现计算机与PLC的通讯。可以用VC或VB实现上位机和PLC的通讯。
4.1 利用VC6.0 或VC6.0 MSComm控件实现
MSComm控件Microsoft公司提供的简化的bbbbbbs下串行通讯编程的ActiveX控件,它为应用程序提供了通过串口收发数据的简便方法。PC机通过RS-232口与PLC进行通信,该通信控件提供了使用RS-232开发串行通信软件的细则,使用事件驱动或查询方式来解决开发通信软件中遇到的问题。事件驱动是一种强大的处理问题的方法,对事件发生的跟踪和处理在通信软件中用Oncomm来实现,它包括检测和处理通信错误等;查询方式则要求设计者自行读取CommEven值,并判断发生何种事件,再对之进行处理。该控件有许多重要的属性,主要的属性如附表所示。
附表 MSComm属性
开发通信软件只需上述几个重要属性设置好通信口,然后用SetOutput指令发送命令。按照通信协议,待PC机与PLC握手成功后,可按特定的数据格式通过Getbbbbb或SetOutput来接收或发送数据。
4.2 利用VC6.0 CSerialPorts类实现
如果在程序中使用多个串口,而且还要做很复杂的处理工作,那么好不用MSComm控件。如果这时候不愿意自己编写底层函数,就可以使用CSerial Ports类。
这个类是由Remon编写的。其中详细的功能可以在其网站上查询。
将SerialPort.h 和 SerialPort.cpp两个类文件复制到工程文件夹中,用 Project -> Add to project -> Files命令将上述两个文件加入工程。
串口的初始化:
在这种方式下,串口的初始化通常放在一个自定义的函数中,这样可以使用多不同的端口,下面以初始化COM的为例给出部分代码。
void CtestView::OpenCom2()
{ DCB dc;
dc.DCBlength = sizeof(DCB);
dc.BaudRate = CBR_9600;
//数据传输速率为9600
dc.ByteSize = 8;
//8位数据位
dc.StopBits = ONESTOPBIT;
//1位停止位
dc.Parity = NOPARITY;
//无校验
}
其中DCB(设备控制块)是一种数据结构,用以实现串口属性的设置。
数据的接收和发送:
数据接收是调用了ReadByte函数,每次读取一个BYTE型变量,多个数据的读取可以通过循环实现。数据发送是调用WriteByte函数,每次只能发送一个无符号的char型或者与之等价的数据,多个数据可以通过循环实现。
4.3 利用PCommPro应用软件实现
与PLC通讯时,PC机还可采用的PCommPro应用软件,该软件是通过Win32初级API函数的调用来控制和使用通讯端口。与VB/VC中的MComm控件相比较,使用较复杂些,但通讯效率高输出控制较好。
在程序中PC机接收数据采用回调函数的处理方式,即欲建立事件,需给定一个函数的地址,当事件发生时,Pcomm便到该回调函数所在的地址去执行该程序代码。所谓回调函数是指当调用一个函数时(尤其是API),该函数会要求调用者提供一个函数的地址,当被调用函数执行后,会再去调用此函数,目的是将结果传送回来让用户知道,或是该被调用函数需要另一个参考的函数运算等,这种做法就称为回调。Pcomm中的回调函数主要介绍以下几种。
Sio_term_irq:当收到终止字符时引发事件程序;
Sio_cnt_irq:接收到固定字符时引发事件;
Sio_modem_irq:当硬件线路的电压发生变化时,引发事件,硬件线路包括DCD,DSR,CTS,RI4支管脚;
Sio_break_irq:当接到中断信号时引发事件。
在程序设计中要根据具体的情况来选择不同的回调函数。例:数据以ASCII值形式传递时,可以使用Sio_term_irq函数,即当收到终止字符时引发事件程序,也可以使用其它回调函数。但当传递的数据以字节形式表示时,使用Sio_term_irq函数可能会引发一些问题,是因为传递的数据值可能与函数所设置的终止字符相同,可能造成接收数据的不完整。
图2 PC的主要程序流程框图
应用到的其它函数还有如下:
sio_open():打开通信端口;
sio_ioctl():设置传输的端口参数,给定的参数有三个,有端口号码、波特率和参数模式(由数据位、停止位和奇偶检验位3部分组成);
sio_read():从接收缓冲区中读取字符串;
sio_write():把发送缓冲区中的数据发送出去;
sio_close():关闭通讯端口,此操作会导致所有的接收和传送操作都停止。
PC程序的主要流程框图如图2所示。
5 结束语
S7-200的自由口通讯方式,使用户可以通过PLC指令自己定义通讯协议,从而与任何公开通讯协议的RS-422或RS-232C接口设备进行通讯,使通讯范围大为增加,控制系统配制更加灵活。随着计算机的普及,人们更希望在享受PLC高性能控制功能的同时,利用个人计算机大量丰富的软件,将PLC的信息转换成各类画面显示,并可以对PLC的参数进行实时修改,达到管理、控制一体化。
1 引言
计算机及通讯技术已成为工业环境中大部分解决方案的核心部分,其在系统中的比重正在迅速增加。在工业控制中,交流电机的拖动越来越多的采用变频器完成,不仅作为一个单独的执行机构,而是随着不断的智能化,同远程计算机之间可以通过各种通讯方式结合成一个有机的整体。在实际工程实施时,变频器的启动、停止、方向、告警、故障指示以及故障复位等控制通常为端子排开关信号控制方式,速度控制采用模拟量给定值控制方式来完成。由于变频器的输出端会产生强烈的干扰信号,控制器有时会造成误动作的情况。当控制距离遥远时,还存在敷线工程量过大的问题。随着现场总线的底层控制网络的发展,变频器生产厂家推出了具有数据通信功能的产品,采用RS-485通信接口用于系统配置和监控是一种低成本的连接方案。
2 西门子变频器的USS控制协议
2.1 USS协议的特点
USS是西门子公司为变频器开发的通信协议,可以支持变频器同PC或PLC之间建立通信连接,常适合于规模较小的自动化系统。它以主从方式构成工业监控网站,在网络内有一个主站,1~31个从站,各站点有唯一的标识码识别。
这种结构的特点是:用单一的、完全集成的系统来解决自动化问题。所有的西门子变频器都可以采用USS协议作为通信链路。数字化的信息传递,提高了系统的自动化水平及运行的可靠性,解决了模拟信号传输所引起的干扰及漂移问题。通信介质采用RS-485屏蔽双绞线,远可达1000m,因此可有效地减少电缆的数量,从而可以大大减少开发和工程费用,并极大地降低客户的启动和维护成本;通信效率较高,可达187.5kbit/s。对于有10个调速器,每个调速器有6个过程数据需刷新的系统,PLC的典型扫描周期为几百毫秒,采用与PROFIBUS相似的操作模式,总线结构为单位站、主从存取方式,报文结构具有参数数据与过程数据,前者用于改变调速器的参数,后者用于快速刷新调速器的过程数据,如启动停止、速度给定、力矩给定等。具有极高的快速性和可靠性。利用西门子变频器的主机上提供的USS接口,仅在终端机中插入一RS-485通信板,就可实现变频器的全部远程控制。
2.2 USS协议的通信数据格式
USS协议的通信字符格式为一位起始位、一位停止位、一位偶校验位和八位数据位。数据报文大长度位256个字节,包括3字节的头部、1字节的校验码和主数据块,数据块按照字的方式组织,高字节在前。通信数据报文格式如表1所示。
表1 USS协议的通信数据报文格式
表中:STX—起始字符,为02Hex;LGE—报文长度,为n+2,3≤n≤254;ADR—从站地址码,其中bit0~bit4表示从站地址,bit5为1表示广播发送,bit6为1表示镜像发送,用于网络测试,bit7为1表示特殊报文;BCC—校验字符,为从STX开始所有字节的异或和。
在一帧内完成过程控制数据的同时,可以通过指定参数号完成设备控制参数的读写。数据快由参数值域(PKW)和过程数据域(PZD)组成,二者均为变长数据,其格式如表2所示。
表2 数据快的格式
表中:PKW域—参数值域,由参数识别码、子参数号和参数值构成,参数个数可根据设备的定义值大可有124个字;PZD域—过程控制数据域,包括控制字/状态字,设定值/实际值,多16个字;PKE参数识别码;IND用来指定某些数组型设备参数的子参数号。
对于SIEMENS的MMV/MDV变频器,协议有所简化:
IND固定为0;PKW为3字格式,即只有PWE1;PZD域的PZD1是控制字/状态字,用来设置和监测变频器的工作状态;PZD域的PZD2设定频率。
3 PLC控制变频器的程序设计
PLC通讯程序采用子程序方式编制,主控程序对变频器的控制通过调用有关子程序发送命令完成。数据接受由后台中断程序完成。发送命令子程序将变频器目标速度值和命令参数加工为USS协议格式,发送出去,并设置发送标志,复位接受完成标志,并开允许接受中断和定时中断。
当变频器发送响应报文时,激活后台中断程序接受变频器的状态值和当前速度值,存入接受缓冲区,并复位发送标志,设置接受完成标志。
3.1 主控程序
按照采样时间间隔,主控程序根据发送标志和接受完成标志,检查变频器接受缓冲区内容,并进行相应的处理。通讯程序由通信口初始化、运行、停止、速度设定等5个子程序和一系列中断服务子程序构成,主控程序的流程如图1所示
3.2 通讯子程序
通讯子程序如下:
SBR0
//通讯初始化程序
MOVB 16#49,SMB30
//初始化P0为9600kb,8bit,偶校验
MOVB 14,“P0-ST-LEN”
//设置发送缓冲区,发送字符数
MOVB 16#2,“P0-ST-STX” //STX
MOVB 12,“P0-ST-LGE” //LGE
MOVB 0,“P0-ST-ADR” //主站地址
MOVB 255,“TO”
ENI
ATCH 4,25
ATCH 6,11
RET
SBR2
//电机启动子程序
MOVB BPADR,,“P0-ST-ADR”
//取主控缓冲区的从机地址
MOVW 16#0C7F,“P0-ST-PZD0”
//设定停止电机启动、正转
CALL “Send-BP”
//调用发送程序
RET
SBR 4
//设定电机速度电机运行子程序
MOVB“BPADR”,“P0-ST-ADRS”
//取主控缓冲区的从机地址
MOVW 16#0C7F,“P0-ST-PZD0”
//设定电机启动、正转
MOVW “BIT/SP”,“P0-ST-PZD1”
//取主控缓冲区的速度值
LDW>=“P0-ST-PZD1”,16#4000
//判断是否超过大速度
MOVW 16#4000,“P0-ST-PZD1”
CALL “Send-BP”
//调用发送程序
RET
SBR5
//发送程序Send-BP
MOVD &VB3500,ACO
//计算BCC
MOVB 14,AC1
//循环计算BCC,存入“P0-ST-BCCS”置位重发次数计数器
XMT “P0-ST-LEN”,0
//发送
ATCH 0,9
//发送结束中断的中断服务程序号
MOVB 100,“h”
//定时时间100ms
ATCH 1,10
//定时中断处理,未接受倒数据,重发数据
RET
3.3 中断接收子程序
中断接收子程序由一系列服务程序组成,包括3种情况。
(1) 判断中断接收的起始3个字符是否为制定字符,是将接收中断指针指向下一个中断程序,复位定时器,同时异或计算BCC值;否则将关闭接收中断,等待定时中断进行错误处理。
(2) 对于数据块的接收,采用计数方式控制,当计数为零时,计算的BCC值应为0,否则关闭接收中断。
(3) 定时中断激活时表示接收超时,重发次数值减1,如果不为0,则自动将发送缓冲区的内容重新发送;为0,置位错误标志。
4 结束语
在变频拖动工程应用中,传统的方法是采用开关量和模拟量信号对变频器进行控制,信号容易受到干扰,出现控制上的错误。采用基于RS-485接口的USS通信协议对变频器进行控制的方法,大大 减少了系统布线,可以避免现场可能的各种电磁干扰对控制设备的影响,有效地提高系统的抗干扰能力。
1 引言
在国内,小水电综合自动化正日益得到重视,因为传统落后的控制方式使每个小水电都不得不依靠值班人员在现场运行,不仅浪费人力物力资源,而且不利于小水电的大量开发。本控制装置是专门为中小型水轮发电机组自动控制而设计的。这一系统充分考虑了我国目前小型水电站操作的特点,替代原继电接触器控制系统,已在我院模拟电站运行良好。下面以混流式机组为例,机组配用T-100型调速器,简要说明用PLC实现水轮机组自动控制的过程。
2 设备工艺特点及控制要求
2.1 电站的自动控制工程内容
(1) 发出命令脉冲以后,机组的起动、并网、调节负荷、停机,发电转为调相运行及调相转发电运行等操作,都需自动完成;
(2) 能自动保持机组的正常工作条件,如速度调整和励磁调整,轴承的润滑和冷却,调相的压水等等;
(3) 水轮机前闸门及机组附属设备和公共设备的自动操作;
(4) 机组发生事故时,自动停机并将机组从系统中切除;当机组发生不正常状态时,自动发出报警信号,并采取预定的措施以恢复正常工作。
2.2 机组控制流程
机组的自动控制包括机组润滑系统、冷却系统、制动系统及调相压水系统的自动控制,机组的启动、停机,机组由调相转发电、由发电转调相等工况的转换,机组的保护与信号等。
下面分别给出机组起动、停止、发电转调相操作程序框图,如图1、2、3所示。
图1 机组起动操作程序框图
图2 机组正常停机操作程序流程图
图3 机组由发电转调相操作程序流程图
3 系统设计
3.1 硬件设计
(1) 输入和输出点分配及辅助继电器M的安排见附表所示。
附表 输入和输出点分配及主要辅助继电器M的安排表
根据I/O的使用点数,并考虑将来的发展需要,确定采用三菱FX2N-128MR型PLC。
(2) PLC接线图
对于PLC接线,见图4。PLC的输入点一律用常开触头,负载统一采用110V直流电源。调相水位信号装置41DSX及导水叶剪断销信号装置41JDX需另接220V交流电源(此部分电路略),将其接点接入PLC的输入点。取消频差继电器CLJ的比较回路,其接点用开关模拟替代。
图4 PLC接线图
3.2 程序设计
梯形图程序如图5所示。
图5 梯形图(a)
图5 梯形图(b)
图5 梯形图(c)
4 结束语
PLC用于模拟小型水电站水轮机组自动控制系统运行以来,其性能比原来的继电接触器式控制优越得多。同时由于操作方便,安全可靠,各种信号显示直观,故障率大大降低,几乎实现了控制系统lingguzhang。该装置有良好的开拓市场。