贵港西门子PLC总代理商
SIMATICS7-1200产品在该项目中充分展示出其强大的软硬件优势。硬件方面,它具有无与伦比的模块化和紧凑性,系统小巧简单而不失强悍,更容易实现与复杂的系统无缝连接,PROFINETRJ45接口在制作和应用上更加方便可靠。软件方面,SIMATIC STEP 7 Basic十分易于使用。对于初学者,工程组态非常容易上手;对于专家,工程组态则变得快速而高效。它的在线诊断、模块化功能块使得编程调试更加简单方便,而其智能功能可为用户提供支持并减少故障的发生几率。由于只需要输入少量信息,它对程序模块的组态和修改十分简单高效。
以往的铁路信号闭塞控制采用两芯动力电缆,以古老、传统的方式直接输送36V或48V来驱动几公里或几十公里外的继电器,以实现信号的联络传输。这种方式不仅施工造价高(电缆需要单独敷设),十分危险(有雷击问题)。该项目利用铁路现有的通讯光缆中备用的两芯,以通讯方式实现,具有投资小、实施方便快捷的特点。
西门子东北区销售人员经过与客户的多次的技术讨论和产品功能确认,综合技术和成本等多方因素,终赢得了客户对西门子S7-1200方案的充分信任。该项目已于9月6日完成,目前运行良好。
该项目的成功签订标志着S7-1200迈入铁路行业的步,也为未来该产品广泛应用于铁路行业奠定了坚实的基础
1、RS485串口通信
第三方设备大部分支持,西门子S7 PLC可以通过选择自由口通信模式控制串口通信。简单的情况只用发送指令 (XMT)向打印机或者变频器等第三方设备发送信息。不管任何情况,都必须通过 S7 PLC编写程序实现。当选择了自由口模式,用户可以通过发送指令(XMT)、接收指(RCV)、发送中断、接收中断来控制通信口的操作。
2、PPI通信
PPI 协议是S7-200CPU基本的通信方式,通过原来自身的端口 (PORT0 或 PORT1)就可以实现通信,是 S7-200 CPU 默认的通信方式。PPI是一种主-从协议通信,主-从站在一个令牌环网中。在CPU内用户网络读写指令即可,也就是说网络读写指令是运行在PPI 协议上的。PPI 只在主站侧编写程序就可以了,从站的网络读写指令没有什么意义。
3、MPI 通信
MPI通信是一种比简单的通信方式,MPI网络通信的速率是19.2Kbit/s~12Mbit/s,MPI网络多支持连接32个节点,大通信距离为50M。通信距离远,还可以通过中继器扩展通信距离,但中继器也占用节点。MPI网络节点通常可以挂S7-200、人机介面、编程设备、智能型ET200S及RS485中继器等网络元器件。西门子 PLC 与 PLC 之间的 MPI 通信一般有3种通信方式:
1) 全局数据包通信方式
2) 无组态连接通信方式
3) 组态连接通信方式
4、PROFIBUS-DP通信
PROFIBUS-DP现场总线是一种开放式现场总线系统,符合欧洲标准和。PROFIBUS-DP 通信的结构非常精简,传输速度很高且稳定,非常适合PLC 与现场分散的 I/O设备之间的通信。
5、以太网通信
以太网的核心思想是使用共享的公共传输通道,这个思想早在1968 年来源于厦威尔大学,1972 年,Metcalfe 和 DavidBoggs (两个都是网络专家)设置了一套网络,这套网络把不同的ALTO计算机连接在一起,还连接了EARS激光打印机。这就是世界上个个人计算机局域网,这个网络在1973 年5月22日运行。Metcalfe在运行这天写了一段备忘录,备忘录的意思是把该网络改名为以太网(Ethernet),其灵感来自于“电磁辐射是可以通过发光的以太来传播”这一想法。1979年,DEC、Inbbb 和 Xerox共同将网络标准化。1984年,出现了细电缆以太网产品,后来陆续出现了粗电缆、双绞线、CATV同轴电缆、光缆及多种媒体的混合以太网产品。以太网是目前世界上流行的拓朴标准之一,具有传播速率高、网络资源丰富、系统功能强、安装简单和使用维护方便等很多优点。
1 引言
可编程序控制器(programmablecontroller)简称plc是以微处理器为基础的新型控制装置,是将计算机技术应于工业控制领域的崭新产品。它集逻辑运算、顺序控制、定时、计数、算术运算功能为一体。还可以与其他计算机进行通信联网,这种通信不但包括不同的plc之间的数据交换,还包括plc与计算机之间的通信。本文介绍笔者使用vb6.0实现plc与上位机之间的通信,使运行人员通过油机配电屏的显示可以监测并控制远端设备的工作。
2 系统构成
本系统采用plc采集模拟信号、数据处理,通过串行通信口上传到计算机,计算机对传上来的数据进行分析、分类记入数据库,实时显示在配电屏上并提供数据查询。plc为s7-224,串行通信接口的信号线采用rs-485,此信号线为半双工,即不能接收和发送。将plc置于run状态,就可以将plc中存于发送缓冲区中的数据及信号送入上位机的串口,上位机通过串口通信程序接收这些数据后显示并通过数据库控件adodc的绑定,把数据记录到数据库,从而完成数据的采样。本工程所需采集的数据包括日常量、故障量和设备动作量。对于日常量需每时每刻的数据显示在配电屏的主控制平面上,以便工作人员观察实时数据,不需要把日常量都记入数据库,只需隔一段时间记录一次(在这里每隔半小时记录一次),对于故障量和设备动作量要求只要设备发生故障或动作就要记录到数据库,以便工作人员查询。
3s7-200的通信方式与通信参数的设置
s7-200的通信功能很强大,有多种通信方式可供用户选择,包括单主站方式、多主站方式、使用调制解调器的远程通信方式等。本工程选择step7-micro/win32支持的通信硬件pc/ppi电缆,它所支持的波特率有9.6kbps和19.2kbps,支持的协议为ppi协议,即点对点接口协议,基于开放系统互联模型osi。ppi是主/从协议,网络上的s7-200cpu均为从站,其他cpu、simatic编程器或td200为主站。s7-200 cpu的通信端口采用rs-485信号标准的连接口,pc/ppi电缆把s7-200计算机连接起来,通过使用接收中断、发送中断和字符中断等指令,自由端口通信可以控制s7-200cpu通信口的操作模式。本工程使用的是自由端口模式,允许在cpu处于run模式时通信口0使用自由端口模式,通过设定smb30的值,我们可以选择波特率、奇偶校验、每个字符的数据位和协议。cpu处于stop模式时,停止自由端口通信,通信口强制转换成ppi协议模式,此时,就可以向cpu中输入plc程序,实现编程软件对plc的编程和控制功能。在这里的通讯过程采用主从方式,即计算机为主机,plc为从机,只有主机计算机发送请求报文后,从机plc才向pc返回发送缓冲区中的数据。
4自由端口模式下plc的通信
由于本工程使用的是pc/ppi电缆,要在plc的程序中考虑电缆的切换时间。plc接收到请求报文到它返回发送缓冲区的数据的延迟时间必须不小于电缆的切换时间。波特率为9600bps时,电缆的切换时间是2ms。在本工程的程序中是用定时中断实现切换延时的。
定时中断子程序:
network title ’定时中断程序int_2
ld sm0.0
dtch 10
xmt vb200, 0
当程序运行到“启动定时中断”(即atch int_2,10)的语句时,就会跳到如上所示的中断子程序中,sm0.0是特殊存储器,该位始终为1,即只要plc处于run状态,这一开关即是接通的。xmtvb200,0语句是用来发送数据到串口的,此时发送的是存储在以vb200为首地址的连续的存储空间中的数据,是通过端口0发送的。
为了提高通信的可靠性,我们需要使用到异或校验,即在通信的双方都将每一帧的每一个字符作异或校验,将两者进行对比,如果不相同则可以判定通信有误。
network1 network title ’求异或校验码的子程序fcs
ld sm0.0
movb 0, #xorc
bti #numb, #numi
for #temp1, +1, #numi
movb 0, #xorc ’用来把异或校验码
清零, 用bti#numb,
#numi将字节数
转换为整数
network2
ld sm0.0
xorb *#pnt, #xorc
incd #pnt
network3
next
for到next语句指明了一个循环,从这一帧的个字符开始(不包括起始字符)到该帧中后一个字符作异或运算。通过调用这个子程序可以计算所指定的数据存储空间内的字符的异或校验码,如果在上位机中的vb程序中也有计算校验码的子程序,那么就可以比较这两次计算的校验码是否相同。可以使用语句(callfcs, &vb102, vb99,vb90)来调用该子程序,其中&vb102是指出子程序fcs进行校验的起始地址,vb99是用来存储需要异或的字节数,而vb90是用来存储计算出来的校验和。假设把从上位机接收到的校验码存储在vb91中,比较vb90和vb91中的数据就可以检验这次通信是否正确。同样,我们可以使用这个子程序计算从plc中发送的数据的校验码,把它送到上位机中某一特定的地址中,在上位机中比较两个数据是否正确(在上位机的计算异或校验码的vb程序将在后面给出)。
因为报文的起始字符和结束字符只有8位,接收的报文数据区内出现与起始字符和结束字符相同的字符的几率很大,这就可能会是数据区字符与起始字符或结束字符发生混淆,为了避免这种情况,可以在发送数据前对数据作一下处理,把数据字符转换为bcd码,在s7-200中专门提供了整数与bcd码的转换指令,可以使用语句(ibcdvw200)就把输入的整数转换为bcd码,结果送入了vw200中。上位机接收到后需要将其转换回整数。
在初始化时要注意自由端口通信协议的设定,一定要使通信过程中的波特率,数据位,奇偶校验及停止位与上位机vb以及通信线上中设定的参数相同,否则将不能实现通信过程,要么接收不到数据,要么会出现“下标越界”的错误。
5上位机的通信部分采用vb语言编程
上位机通信接口部分采用vb语言来编写, 在vb中专门有一个控件microsoft commcontrol(简称mscomm控件)用来提供串行通信。在编程过程中只要设置mscomm控件的属性,就可以实现串行通信。mscomm控件一般不包括在常用的工具框中,需要在右边的工具框的空白处点击鼠标右键,选择components选项,就会出现components对话框,在其中的controls标签下就会找到microsoft comm control6.0,选定它, 点击确定就可以把这一控件加入到右边的工具框中, 图标为。
用鼠标拖动这个图标到bbbb中,即可设置其属性。在此控件众多的属性当中,需要重新定义的属性只有commport(传输数据的通信端口号)、settings(设置数据传输的波特率、奇偶校验、数据位以及停止位,注意,此参数一定要与plc通信程中设置的参数相一致)、portopen(设置通信端口的状态)、bbbbbmode(读取接收缓冲区的格式)等。本工程采用事件驱动方式处理接受信息,即把rthreshold属性设置为非零的值,此时只要接收字符或传输线发生变化就会产生串口事件oncomm。通过查询commevent属性可以捕获这些通信事件。
在vb中实现异或计算的程序及注释如下:
nbyte(1)=ubound(sdata)+1 ’送数据区字节数
fcs=nbyte(1) ’校验码初始化
for i=2 to ubound(sdata)+2
nbyte(i)=sdata(i - 2) ’待发送数据报文数
组的数据区
fcs=fcs xor nbyte(i) ’异或运算, 求校验码
next
nbyte(i)=fcs ’送校验码
其中sdata为发送的数据数组的变量名称,for-next语句实现所发送的数据每一位都进行异或运算。这样就可以把发送数据的异或校验码送到plc中,在plc比较两次计算出的校验码是否相同,从而提高通信的可靠性。
本工程中把计算机向下发送控制命令的部分写成自定义函数send(xi)(i从1到6),在每一个需要发送控制命令的按钮处调用此函数,只是在send中参数设置为不同的控制数。
图1 设备动作状态接收表
图1为模拟一个油机配电屏控制面,该软件可以对三相输出电压、电流、功率因数这些实时信号进行采集、显示并存储,并对设备的动作状态、故障情况采集到数据库中。该控制面上方有一系列的控制按钮,点击某一按钮就会向下位机发送相应的控制命令,控制下位机动作。
在通信过程中,由于计算机为主机,而plc为从机,plc只有在接收到计算机发送的信息后,才发送数据。计算机发送数据的次数并不是与其接收数据次数是一一对应的,计算机每点击一次发送控制命令的按钮(请参看图1)后,plc就要向计算机传输存于其缓冲区内的所有数据,而每引发一次oncomm事件只能传输8个字节,假如plc的发送缓冲区中一共右50个数据,那么每要求向上传送一次数据,就会相应的引发7次oncomm事件,每引发一次oncomm事件程序就会一直执行到endsub为止。这一点可以通过在发送数据的程序中加入测试语句 “debug.print‘start’”,在endsub前加一测试语句“debug.print‘end’”来验证,我们可以清楚的在立即窗口中发现每一个start后有7个end。
6 与数据库绑定的控件
采集数据的终目的不仅要把需要显示的数据(比如:日常量)显示在界面上,还要把数据记录到数据库中,以备日后查询。显示数据的过程很容易实现,就是把接收缓冲区的内容按照事先约定好的顺序依次取出即可。要把数据记录到数据库就需要用到数据库绑定控件,在本工程中用到的是adodc控件,这一控件也不包括在常用的工具框中,仍然要依照加mscomm控件的方法把工具条microsoftado datacontrol6.0(sp4)(oledb)加到工具框中,就可以把这一控件拖入bbbb(在本次工作中把adodc控件放在了程序运行时不显示的查询画面中,这样就可以完成记录到数据库和查询工作)中,通过设定adodc1的connectionbbbbbb(要求与事先建好的数据库所存储的地址相联接)、commandtype(由于要向数据库写入数据要把它设置为2-adcmdtable)以及recordsource(如果指定的数据库包含多个表,就要选择一个与此adodc1相对应的表)属性(其他属性用默认值即可)就绑定完毕。
在编程序时,可以通过下面的语句把传递上来的信息整理并写进数据库:
if rcv(5) then
with adodc1
.recordset.addnew
.recordset(“设备名称”)=“断路器1”
.recordset(“动作状态”)=“合”
.recordset(“动作时间”)=now
.recordset.update
end with
end if
其中“设备名称”“动作状态”“动作时间”是所绑定的数据库的字段名,等号后面的值是满足条件语句时向所绑定的数据库的相应的字段所加的字段值,在本工程中在数组rcv中暂放了从接收缓冲区中接收到的所有数据,而rcv(5)所放置的是是否合断路器1这个动作信息,约定plc送上来的数据中rcv(5)=1表示合断路器1,有上述语句,其他的动作状态记录、故障状态记录及日常量记录与上述程序几乎相同,由于日常量不需要每时每刻都要记录到数据库,在日常量向数据库写入时用了静态变量count来计时,假如count的值每增加1时间就增加1s,要求每半个小时记录一次,那么就可以用countmod 1800 =0来实现这一时间的控制。
步进电动机是一种将数字脉冲信号转换成机械角位移或者线位移的数模转换元件。在经历了一个大的发展阶段后,目前其发展趋于平缓。由于步进电动机的工作原理和其它电动机有很大的差别,具有其它电动机所没有的特性。沿着小型、高效、低价的方向发展。
步进电动机由此而得名。步进电动机的运行是在专用的脉冲电源供电下进行的,其转子走过的步数, 或者说转子的角位移量, 与输入脉冲数严格成正比。步进电动机动态响应快, 控制性能好,只要改变输入脉冲的顺序, 就能方便地改变其旋转方向。这些特点使得步进电动机与其它电动机有很大的差别。步进电动机的上述特点,使得由它和驱动控制器组成的开环数控系统, 既具有较高的控制精度,良好的控制性能, 又能稳定可靠地工作。在数字控制系统出现之初,步进电动机经历过一个大的发展阶段。
步进电机是将电脉冲信号转成角位移或线位移的电磁机械装置,是一种输出与输入数字脉冲相对应的增量式数字元件。在数控机床、绘图机、打印机等方面应用广泛。它也可以看作是一种特殊的同步电机;它具有快速起停、jingque步进及直接接收数字量的特点,它的步距角和转速不受电压波动和负载变化的影响,也不受环境条件如温度、气压、冲击、和振动等影响,仅与脉冲频率有关,这些特点使它完全适用于数字控制的系统中作为伺服元件,并使整个系统大为简化而又运行可靠。
本课题选用了常见的一种小步距角的三应式步进电机其剖面图。电机的定子上有6个等分的磁极,相邻两个磁极间的夹角为60度。磁极上装有控制绕组并联成A,B,C三相。转子上均匀分布40个齿,每个齿的齿距为9度。定子每段极弧上也有5个齿,定、转子的齿宽和齿距都相同。每个定子磁极的极距为60度,每个极距所占的齿距数不是整数。当A极下的定、转子齿对齐,B极和C极下的齿就分别和转子齿相错三分之一的转子齿距,即为3度。这时若给B相通电,电机中产生沿B极轴线方向的磁场,因磁通要按磁阻小的路径闭合,就使转子受到反应转距(磁阻转距)的作用而转动,直到转子齿和B极上的齿对齐为止。此时,A极和C极下的齿又分别与转子齿相错三分之一的转子齿距。错齿是促使步进电机旋转的根本原因。若断开B相控制绕组,而接通C相控制绕组,这时电机中产生沿C极轴线方向的磁场。同理,在反应转距(磁阻转距)的作用下,转子按顺时针方向转过3度,使定子C极下的齿与转子齿对齐。以此类推,当控制绕组按A->B->C->A顺序循环通电时转子就沿着顺时针方向以每个脉冲转动3度的规律转动起来。若改变通电顺序,即按A->C->B->A顺序循环通电时,转子便按逆时针方向同样以每个脉冲转动3度。这就是单三拍通电方式。若采用三相单、双六拍通电方式运行,即A->AB->B->BC->C->CA->A顺序循环通电,步距角将减小一半,即每个脉冲转过1.5度。
西门子和国内某大型纺机企业联手合作,成功开发出K3502型地毯丝加捻机。K3502型地毯丝加捻机锭数为120锭;锭距500mm;全机总长为37m。控制系统采用一机两侧完全独立的控制方式。分左侧和右侧两个完全独立却相同的控制系统。
控制系统分为机头电气开关箱和机身锭位控制两个部分。其中包括1个显示设定单元和左、右系统速度控制站和左、右锭位控制站。
1.显示设定单元:采用西门子TP270-10彩色触摸屏,负责工艺参数的设置、控制命令的下达及整机工作状态的显示。显示屏操作画面分左右两部分,分别设定和显示机器左右侧的工艺参数和运转状态。
其主要菜单包括如下内容:
工艺参数设定:工艺参数的设定和管理。需设置密码。
工艺参数配方:各种工艺参数的配方,便于管理,需设置密码。
2.系统速度控制站:采用西门子S7-226PLC负责系统的控制;工艺参数的传输和管理;整机的操作和运行协调;整机状态数据的管理;整机各故障信息的处理。控制框图如下。
S7-226 PLC采用CANopen总线(自制通讯卡)方式与各锭位上的单片机锭控卡连接,完成各锭位的控制、数据采集。
3.锭子速度控制:由2台西门子MM44075KW变频器分别驱动左右侧60台锭子电机。系统控制站根据设定值和锭位实际速度的平均值经过运算后用通讯方式控制变频器运转。控制精度达到HZ。
4.卷绕速度控制:由2台西门子MM4400.75KW变频器分别驱动左右侧2台卷绕减速电机。卷绕变频器与其配套的旋转编码器组成闭环反馈系统;控制精度达到HZ。
5.超喂速度控制:由2台西门子MM4404KW变频器分别驱动左右侧2台超喂减速电机。超喂变频器与其配套的旋转编码器组成闭环反馈系统;控制精度达到HZ。
6.横动速度控制:由2台松下750W交流伺服驱动器和驱动电机加减速器分别控制左右侧横动移纱,卷绕和横动速度要根据设定的交叉角,防叠长度在交叉角1和交叉角2之间按0.5°步长循环递增、递减运行。
7.锭位控制:各锭位都由各自的单片机控制。
1锭位的起动、停止:各锭位正常单独起停。主要为电锭运行、刹车、断纱信号判断,计长信号及指示灯的联锁控制。定长满管自停。
断纱和失张监控:在捻线过程中产生断纱或纱线张力发生波动时,锭位站能使相应锭位按规定顺序停车,并发出故障信号。
每个锭位有5种状态,正常运行、正常停车、断纱、失速、满管。
经过实际运行证明:西门子MM440变频器和S7-200PLC,性能质量稳定可靠,应用方便、快捷。
MM440变频器以及和电控柜安装图
K3502型地毯丝加捻机单机结构图
车间现场图