7
镇江西门子一级代理商CPU供应商
随着中国工业经济的发展,PLC在中小型自动化设备的日益普及应用,对于设备制造厂商或生产技术管理部门来说,如何以快捷的方式响应现场设备维护方面的需求,检测生产现场运行设备的状态,及时解决生产现场反映的问题,已是多数上位技术管理者的切实需求。如何采用经济实用的方式来实施远程PLC设备数据采集或测控,这也是探索解决此问题的初衷。
1、系统组成概述
系统硬件主要由上位计算机、TC35iGSM MODEM无线通讯模块和远程Siemens S7—200 PLC 3部分组成,具体结构如图1所示。系统软件分为上位PC和下位PLC两部分,上位PC部分提供人机交互操作界面和相应的数据选择、处理等;下位PLC则通过自由口通讯,以中断方式快速响应上位机对PLC变量存储器数据的读写操作或对I/0口读写操作需求。由于上位计算机与远程PLC的通讯载体是通过TC35i建立在GSM网络基础上的,从而了地域的限制,即便远端PLC设备在千里之遥,实施数据采集、测控的如同咫尺。
2 系统硬件设计
2.1 TC35i无线通讯模块
系统组成如图1所示,系统硬件主要是TC5i无线通讯模块的应用。TC35i是Siemens公司推出的新一代无线通信GSM模块,TC35i双频工作(EGSM900/GSMl800),电源范围在3.3~4.8 V,发送功率分别为2W(Class4 EGSM900)和lW(Classl GSMl800 MHz),TC35i的数据接口采用串行异步收发,符合ITU-TRS-232接口电路标准。数据接口配置为8位数据位、1位停止位、无校验位,可以在300~115 kb/s的波特率下运行,支持的自动波特率为4.8~115 kb/s,符合ETSI标准GSM0707和GSM0705,且易于升级为GPRS模块。该模块集射频电路和基带于一体,向用户提供标准的AT命令接口。为数据、语音和短消息提供快速、、的传输,方便用户的应用开发及设计。TC35i有40个引脚,通过ZIF连接器引出。这些引脚可划分为5类,即电源、数据输入/输出、SIM卡、音频接口和控制。TC35i内部电路如图2所示。
ZIF40PIN的引脚1~14为电源部分,其中引脚l~5为电源电压输入端VBATT+,引脚6~10为电源地GND,引脚11~12为充电端,引脚13为对外输出电压(供外部电路使用),引脚14 ACCU/TEMP接负温度系数的热敏电阻;引脚24~29为SIM卡连接端;引脚33~40为语音接口用来接电话手柄。引脚15、30、31和32为控制部分,引脚15为启动线IGT(Ig-niTIon)。当TC35i通电后给IGT一个大于100 mV的低电平,模块才能启动。引脚30为RTC back up;引脚3l为掉电控制:引脚32为SYNC,引脚16~23为数据输入/输出端。TC5i无线通讯模块的主要外围电路的连接如图3所示。数据通信电路以MAX232为实现电平转换及串口通信。
2.2 系统硬件连接
系统硬件的连接可参考图1可知,上位计算机的串口输出与由TC35i构成的GSM MODEM中的9芯RS232口直接连接;远程的GSM MODEM与PLC连接时则通过RS232到RS485的转换,这是Siemens PLC的通讯口数据和PPI编程电缆连接的必要条件。另一方面注意的是,在与远程GSM MODEM的RS-232串口连接时,还将RS232串口中的RXD和TXD对换连接,否则将不能正常通讯。
2.3 远程PLC的选型
该系统选用西门子S7—200 PLC,在西门子PLC中SIMATIC S7—200是一个系列,其中包括多种型号的CPU,这里选用CPU-222,由于CPU不提供模拟量的输入输出,为对模拟量数据的远程读写。因此在远程PLC系统中扩展一型号为EM-235的4输入1输出模拟量模块。
3 系统软件设计
3.1 系统上位计算机人机界面
系统上位的人机界面是用VB编程,提供人机交互操作界面及数据选择和相应的数据处理等功能。系统上位的操作界面如图4所示。在操作界面的左上部是通讯链接控制框,这里只需要正确选择PC的串口并输入远程PLC所连接的电话号码后即可拨号链接,远程的无线GSM MODEM模块摘机响应一般设置为铃响后自动摘机,通讯链接建立后,当上位PC检测到串口端的数据载波DCD信号后,通讯链接控制框中的“链接状态”指示灯由红变绿,表示通讯链路已成功建立。拨号或的操作均是通过对GSM MODEM模块发送AT指令执行的。
对PLC数据的读写操作如操作界面的右上部所示,在相应文本框内填写好数据的类型、地址、数值和操作方式后点击“发送”即可执行对PLC的读或写操作。界面的下半部分显示的是PC串口发送和接收的代码以及当前操作的结果。
3.2 系统上位计算机的串口设置
在上位PC的人机界面中,串口的设置是通过下拉选择框选择出所连接的串口后由程序自动读取。在使用GSM MODEM无线模块时,上位PC对远程PLC链接呼叫时采用的是AT指令。程序语句为:MSComm1.Output=“ATDT”&Trim (Text1.Text)& vbCrLf//Text1文本框内为欲连接的电话号码。的AT指令为:MSComml.Output=“ATDT”&“+++”& vbCrLf。串口数据格式的设定语句为:MSComml.SetTIngs=“9600. N,8.1”,与TC35iGSM MODEM无线通讯模块和远程PLC自由口的串行数据通讯格式一致。
3.3 通讯数据格式的约定
由于远程PLC采用的是自由口用户通讯方式,这里对每次收发数据字节暂约定为18个字节,数据字节的多少可根据实际需要而酌情约定。本系统中18个字节的约定:Bybbb为数据的总字节数;Bvte2为数据开始特征字;Bvte3为数据读或写特征字:Byte4为数据类型特征字;Bvte5~Byte8为PLC数据地址;Bvte9~Bybbb6为PLC数据的数值;Bybbb7为收发数据的校验码;Bvbbb8为数据结束特征字。串口数据的传输除数据地址字节和数据数值字节用ASCII码表示外,其他均以十六进制方式表示。因而在上位PC的编程中需涉及大量的进制转换操作。特别要注意的是由于PLC中的实数采用32位单精度数表示,并按照ANSI/IEEE745 1985标准格式以双字长度来存取,所以无论是上位的PC或是下位的PLC在编程时对实数数据的处理均需严格遵循ANSI/IEEE7451985标准格式的规定,否则将不可能读到正确的数据。
通讯数据的校验方式采用BCC块进行XOR校验,即约定为从每次数据包的Byte2到Bybbb6的字节进行校验,Bvbbb7存放校验结果。上位或下位在接收数据时,对所接收的数据进行校验并将计算结果与Bvbbb7所存放的数值进行比较,如不一致时则按约定要求重发,以每次传输数据的正确性。
3.4 远程PLC自由口通讯初始化编程
由于远程PLC采用的是自由口用户通讯协议,所以对PLC的自由口通讯做如下初始化设置:
远程PLC经上述设置后,在其运行期间每当接收到一组数据后便自动产生中断请求,在中断服务的子程序中,设定一标志位(如MO.0)置位,用来表示允许进入中断服务,在主程序中通过检测M0.O的状态来确定是否转入读数据操作的子程序,读数据操作完毕后及时将接收数据标志M0.0复位,从而完成一次读数据过程。PLC数据的上传则是根据所读数据的内容来响应上位的请求,上传数据的编码和字节均依照约定的格式写入,每次的读写操作仅在PLC一个扫描周期内(数毫秒)完成,系统的响应是实时的。
3.5 远程PLC数据的读写操作
PLC数据的读写是依据约定的数据类型实施操作的。对于字节、字、双字、实数及I/0端口各自有约定的数据类型特征字,在下位PLC程序中通过对数据类型特征字的解析后来确定读取数据的字节数。对I/0端口的读写操作则是根据约定的编码直接读写出相应的状态信息。每组收发数据的存储单元从VBl00到VBll7共18个字节。由前述的数据发送量的约定可知,每组数据的Byte5~Byte8表示PLC数据的地址,由于每次读写的地址是不同的,所以Byte5~Byte8字节给定的就是地址指针,在PLC编程中就要以此指针采用间接寻址的方式,设Byte5~Byte8存放在PLC的VB104~VBl07单元,其间址指令则为:
MOVD &VBl04,ACl读取该地址内容时则根据数据类型的不同而有所区别,如读写字节时指令为:MOVB*ACl,VBl60;则读写字的指令为:MOVW *ACl,VWl60;读写双字的指令为:MOVD *ACl,VDl60;读写实数的指令则为:MOVR *ACl,VDl60。
4 结束语
本系统经实际测试基本达到了预期效果。远程PLC在省际间距离的测控响应与在本市区地域的测控响应基本相同,通过对PLC I/O的读写、模拟量数据的读写、单字节、双字节及实数的读写,均未出现数据差错现象,远程的响应速度基本上是对上位的指令立即响应,操作人基本感觉不出时间的延时。在PLC中,由于本远程测控程序字节量较少,可以嵌入在PLC的过程控制程序中运行,由于在自由口通讯中,
对上位PC读写的响应采用的是中断方式快速响应,所以对PLC的过程控制程序的实时性基本无影响。
它的工作有两个要点:入出信息变换、物理实现。
入出信息变换主要由运行存储于PLC内存中的程序实现。这程序既有系统的(这程序又称监控程序,或操作系统),又有用户的。系统程序为用户程序提供编辑与运行平台,同时,还进行必要的公共处理,如自检,I/O刷新,与外设、上位计算机或其它PLC通讯等处理。用户程序由用户按照控制的要求进行设计。什么样的控制,就有什么样的用户程序。
物理实现主要通过输入(I, bbbbb)及输出(O, OUTPUT)电路。每一输入点或输出点就有一个I或O电路。而且,总是把若干个这样电路集成在一个模块(或箱体)中,然后再由若干个模块(或箱体)集成为PLC完整的I/O系统(电路)。尽管这些模块相当多,占了PLC体积的大部分,但由于它们都是由高度集成化的,所以,PLC的体积还是不太大的。
输入电路时刻监视着输入点的(通、ON或断、OFF)状态,并将此状态暂存于它的输入暂存器(还可能有别的称谓)中。每一输入点都有一个与其对应的输入暂存器。
输出电路有输出锁存器(还可能有别的称谓)。它也有两个状态,高、低电位状态,并可锁存。同时,它还有相应的物理电路,可把这个高、低电位的状态传送给输出点。每一输出点都有一个与其对应的输出锁存器。
这里的输入暂存器及输出锁存器实际是PLC的I/O电路的寄存器。它们与PLC内存交换信息通过PLC I/O总线及运行PLC的系统程序实现。
把输入暂存器的信息读到PLC的内存中,称输入刷新。PLC内存有专门开辟的存放输入信息的映射区。这个区的每一对应位(bit)称为输入继电器,或称软触点,或称为过程映射输入寄存器(the process-image bbbbb register)。这些位(bit)置成1,表示触点通,置成0为触点断。由于它的状态是由输入刷新得到的,所以,它反映的就是输入点的状态。
输出锁存器与PLC内存中的输出映射区也是对应的。一个输出锁存器也有一个内存位(bit)与其对应,这个位称为输出继电器,或称输出线圈,或称为过程映射输出寄存器(the process-image output register)。通过PLC I/O总线及运行系统程序,输出继电器的状态将映射给输出锁存器。这个映射的完成也称输出刷新。
PLC除了有可接收开关信号的输入电路,有时,还有接收模拟信号的输入电路(称模拟量输入单元或模块)。只是后者先要进行模、数转换,然后,再把转换后的数据存入PLC相应的内存单元中。
如要产生模拟量输出,则要配有模拟量输出电路(称模拟量输出模块或单元)。靠它对PLC相应的内存单元的内容进行数、模转换,并产生输出。
这样,用户所要编的程序只是,PLC输入有关的内存区到输出有关的内存区的变换。这是一个数据及逻辑处理问题。由于PLC有强大的指令系统,编写出满足这个要求的程序是可能的。
图1-1对以上叙述作了说明。其中框图代表信息存储的地点,头代表信息的流向及实现信息流动的手段。这个图,既反映了PLC实现控制的两个基本要点,同时也反映了信息在PLC中的空间关系。
简单地说,PLC工作过程是:输入刷新---运行用户程序---输出刷新,再输入刷新---再运行用户程序---再输出刷新##8943;##8943;停止地循环反复地进行着。
图2所示的流程图反映的就是上述过程。它也反映了信息间的时间关系。
a- 简化工作流程图b – 实际工作流程图
图1-2 PLC工作流程图
有了上述过程,用PLC实现控制显然是可能的。因为:有了输入刷新,可把输入电路监视得到的输入信息存入PLC的输入映射区;经运行用户程序,输出映射区将得到变换后的信息;再经输出刷新,输出锁存器将反映输出映射区的状态,并通过输出电路产生相应的输出。又由于这个过程是停止地循环反复地进行着,所以,输出总是反映输入的变化。只是响应的时间上,略有滞后。但由于PLC的工作速度很快,所以,这个“略有滞后”的时间是很短的,一般也就是几豪秒、几十豪秒,多也不会过100到200毫秒。
图1-2a所示的是简化的过程,实际的PLC工作过程还要复杂些。除了I/O刷新及运行用户程序,还要做些其它的公共处理工作。公共处理工作有:循环时间监视、外设服务及通讯处理等。
监视循环时间的目的是避免用户程序“死循环”,保证PLC能正常工作。为避免用户程序“死循环”的办法是用“”(Watching dog),即设一个定时器,监测用户程序的运行时间。只要循环时,即报警,或作相应处理。
外设服务是让PLC可接受编程器对它的操作,或向编程器输出数据。
通讯处理是实现与计算机,或与其它PLC,或与智能操作器、传感器进行信息交换的。这也是增强PLC控制能力的需要。
也就是说,实际的PLC工作过程总是:公共处理——I/O刷新——运行用户程序——再公共处理——##8943;反复不停地重复着。图1-2b所示的是实际的过程。
此外,PLC上电后,也要进行系统自检及内存的初始化工作,为PLC的正常运行做好准备。
用这种不断地重复运行程序以实现控制,称扫描方式工作。是PLC基本的工作方式。
此外,为了应对紧急任务,PLC还有中断工作方式。在中断方式下,需处理的任务先申请中断,被响应后停止正运行的程序,转而去处理中断工作(运行有关中断的服务程序)。待处理完中断,又返回运行原来程序。
PLC的中断方式的任务,或称事件,是分等级的。同时出现两个或多个中断事件,则级高的先处理,继而处理低的。直到全部处理完中断任务,再转为执行扫描程序。
PLC对大量控制都用扫描方式工作,而对个别急需的处理,则用中断方式。这样,既可做到所有的控制都能照顾到,而个别应急的任务也能及时进行处理。
当然,PLC的实际工作过程比这里讲的还要复杂一些,分析其基本原理,也还有一些理论问题。但如果能弄清上面介绍的思路,也可知到PLC是怎么工作的了。
西门子S7-200 plc加三级密码后是不是没有正确的密码永远都解不开啊?,原来的程序我强制清空都不可以吗?如果这样都不可以的话那不等于这个PLC 报废了啊?
答:
密码参考如下方法:
1、如何设置的密码?
如果你不知道CPU的密码,你CPU 内存,才能重新下装程序。执行CPU指令并不会改变CPU原有的网络地址、波特率和实时时钟;如果有外插程序存储卡,其内容也不会改变。密码后,CPU中原有的程序将不存在。
要密码,可按如下3种方法操作:
1)在Micro/WIN中选择菜单“PLC>bbbbb”选择所有三种块并按"OK"确认。
2)另外一种方法是通过程序“wipeout.exe”来恢复CPU的缺省设置。这个程序可在STEP7-Micro/WIN安装光盘中找到。
3)另外,还可以在CPU上插入一个含有未加密程序的外插存储卡,上电后此程序会自动装入CPU并且覆盖原有的带密码的程序。然后CPU可以自由访问。
2、执行程序“wipeout.exe”不仅删除用户程序,而且会将CPU恢复成缺省设置,即网络地址:2,波特率:9.6K。
注意:wipeout.exe软件不能与USB/PPI电缆配合使用。
西门子提供一个wipeout.exe程序可以删除程序以及密码还有恢复出厂通讯波特率,可以从西门子网上下载:
S7-200密码权限:
1、系统快中,密码权限设置为4级。
2、所有 21x 和 22x CPU 均支持密码级别 1, 2 ,3。只有硬件版本 2.0.1 以后的 22xCPU 能支持密码级别 4。
3、1级为全部权限,2级为部分权限,3级为小权限,4级为禁止上载。
4、具体参考F1帮助。