全国服务热线 15221406036

长春西门子S7-1200代理商

发布:2024-03-22 16:46,更新:2024-05-08 07:10

长春西门子S7-1200代理商

1 龙门刨床的机械传动控制要求

图1 往返式机械传动示意图


  图1所示的龙门刨床的机械传动示意图。传动系统从原点启动,中速行驶到1000mm,开始高速行驶,高速行驶到3000mm,开始低速爬行,低速爬行到终点(3200mm)停车。停顿2s。反向高速行驶,高速行驶到距原点200mm处开始低速爬行。到达原点停车,停顿2s后重新开始往返。在原点和终点低速爬行的目的是为了避免系统惯性带来的定点误差,做到原点和终点的jingque定位停车。

2 龙门刨床机械传动的PLC控制系统硬件设计

  2.1 系统对变频器的控制要求

  变频器的正反转由继电器K1、K2控制,速度的切换由继电器K3、K4完成。变频器故障报警输出触点(30A、30C触点)用于立即停止高速计数器运行,并由指示灯HR指示。

  变频器具有多段速度设定功能,当K3、K4两个继电器触点都断开时,高速行驶(速度);K3闭合,K4断开时,中速行驶(第二速度);K3断开,K4闭合时,低速行驶(第三速度);K3、K4都闭合时,手动调节行驶(第四速度)。

  旋钮SF用于手动/自动切换,并用指示灯HG1表示自动状态。手动时,能够通过按钮SA1(电机正转)和SA2(电机反转)手动调节传动系统的位置。

  按钮SA用于传动系统在自动状态下的启动/停止控制。采用“一键开关机”方式实现启动/停止控制,用指示灯HG2表示启动状态。

  行程开关SQ用于自动启动时,确定传动系统在原点位置,自动停止时,传动系统必须返回原点。行程开关SQ1、SQ2用于传动系统的两端限位,确保传动系统不能脱离设备。

  2.2 PLC系统硬件系统的构成及连接

  为了实现对龙门刨床机械传动的jingque定位,本系统采用PLC作为控制器,通过变频器进行速度调节,采用光电编码器和PLC高速计数器进行定位控制。根据龙门刨床的机械传动控制要求,系统中有开关量输入点8个,开关量输出点7个,光电编码器A相输入一个,因此选用SIEMENS的CPU224作为控制器,其I/O点的分配及系统接线如图2所示。

图2 龙门刨床机械传动PLC控制系统接线图


3 PLC梯形图程序的设计

  PLC的梯形图程序设计包含主程序(用于实时调用手动子程序SBR_0和自动子程序SBR_1)、子程序SBR_0(用于实现对系统的手动控制)和SBR_1(用于实现对系统的自动控制)和中断处理程序INT_0程序(用于处理高速计数器计数当前值到达不同预置值的处理)。由于篇幅所限,以下将以中断处理程序INT_0程序为例,说明变频器对速度的控制和调节。其梯形图如下。

4 梯形图设计过程中要注意的几个关键问题

  4.1通过多次更改高速计数器的中断和预置值实现多点定位

  实现多点定位控制的关键包括两点,点是设置高速计数器中断事件12(计数器当前值=计数器预置值),另一点就是在中断处理程序中更改高速计数器预置值。

  定位控制需要测量定位点与原点的距离,然后将单位距离(mm)转换成脉冲量,通过光电编码器和PLC高速计数器记录脉冲量的变化。本系统中,光电编码器的机械轴和电动机同轴。传动比=10,用于驱动设备的传动辊直径=100mm,光电编码器每转脉冲数=600个/转。可以计算出每毫米距离的脉冲数为:

  每毫米距离的脉冲数=600÷(10×100×3.14)≈0.19108脉冲/mm

  定点位和预置值比较,必须采用高速计数器中断方式,而不能采用一般的比较指令。因为一般的比较指令无法捕捉高速变化的事件。

  所以,必须通过ATCH和ENI指令将高速计数器中断事件号12((计数器当前值=计数器预置值)与中断处理程序INT_0连接。在中断处理程序INT_0中,到达预置值时,重新装载下一次的预置值,并执行工艺要求的继电器输出,处理变频器的运行速度。

  在自动子程序SBR_1中,将高速计数器HC0设置为单相计数输入,没有外部控制功能。在原点和终点通过更改计数方向,便于中断处理程序INT_0判断变频器的运行方向。

  4.2 在中断处理程序INT_0中不能使用等于比较指令

  由于在一个中断处理程序INT_0中判断处理多个预置值。需要比较指令和计数方向来判断目前高速计数器计数当前值在哪个阶段,根据判断来决定执行那一段指令。但是,判断不能使用等于比较指令,应该使用大于或小于指令判断。

  尽管中断事件(计数器当前值=计数器预置值)发生时,PLC立即中断当前主程序、子程序,执行中断处理程序INT_0中的指令。但是,在中断处理程序INT_0中,PLC仍然是按照逐条逐行的扫描机制执行。而高速变化的计数值不可能和中断处理程序执行同步,如果采用等于比较指令,PLC在执行中断处理程序时,可能会错过等于值,使PLC在中断处理程序中无法判断设备运行到哪个阶段。

  4.3 在自动运行时,高速计数器的初始值寄存器写入必须禁止

  由于多点定位需要多次装载预置值,写入预置值必须执行HSC指令。

  执行HSC写入指令,不单单是写入预置值,如果在控制字节中不加以限制,初始值寄存器SMD38中的值同样写入。而SMD38=0,这样,就会使高速计数器计数当前值置0。因此,在自动运行时,必须设置控制字节SMB37的第七位SM37.6为0,在装载预置值时,禁止写入初始值。

  但是,在高速计数器初始设置和返回原点重新开始运行时,又必须写入初始值,使初始值置0,避免机械原因带来的误差。因此,控制字节必须多次修改。遵循的原则是:允许写入初始值、执行HSC指令后,必须马上修改控制字节,禁止初始值写入,并再次执行HSC指令,中间不能有其它指令存在。

  4.4 多点定位的输出线圈尽量采用立即指令

  采用高速计数器进行多点定位,主要为了jingque定位。定位精度既决定于高速计数器的测量,同时也决定于执行机构的执行快速性。

  如果采用普通输出指令,在一个扫描周期的程序执行阶段,改变的仅仅是输出映像存储器,PLC的输出点不会立即刷新,只有在程序执行完毕后,PLC的输出映像存储器才能对输出点刷新,执行输出。

  为了增加定位精度,尽量采用立即输出指令。立即输出指令不受PLC扫描周期阶段的限制,在改变输出映像存储器的同时,立即刷新PLC输出点。

  4.5自动/手动程序采用For-Next循环指令和子程序指令实现

  本系统中的自动/手动功能通过采用For-Next指令和子程序指令实现。自动程序和手动程序实际上就是两个循环指令的循环体。而循环指令仅执行一次循环扫描刷新。

  手动子程序SBR_0和自动子程序SBR_1用于整个程序的分段,便于程序的理解,增加程序的可读性。For-Next循环指令的作用是使输出线圈能够重复使用,简化程序。

  中断处理程序:INT_0

  当变频器正向运行(由SM36.5判断,增计数为正向运行,SM36.5=1),高速计数器当前值等于19108(1000mm)时,继电器K3(Q0.2)、K4(Q0.3)断开,变频器速度设定为高速正向行驶(速度)。同时将高速计数器预置值更改为57325(3000mm)。

  当变频器正向运行,高速计数器当前值等于59325(3000mm)时,继电器K3(Q0.2)断开、K4(Q0.3)接通,变频器速度设定为低速正向爬行行驶(第三速度)。同时将高速计数器预置值更改为61146(3200mm)。

  当变频器正向运行,高速计数器当前值等于61146(3200mm)时,表明达到终点,继电器K1(Q0.0)、K2(Q0.1)、K3(Q0.2)、K4(Q0.3)全部复位断开,变频器立即停止运行。同时,发出终点到达信号M0.1,让子程序SBR_1处理停顿2s时间,并由SBR_1处理反向运行设置。

  当变频器反向运行(由SM36.5判断,减计数为反向运行,SM36.5=0),高速计数器当前值等于3822(200mm)时,继电器K3(Q0.2)断开、K4(Q0.3)接通,变频器速度设定为低速反向爬行行驶(第三速度)。同时将高速计数器预置值更改为0。

  当变频器反向运行(由SM36.5判断,减计数为反向运行,SM36.5=0),高速计数器当前值等于0时,表明变频器返回到达原点。继电器K1(Q0.0)、K2(Q0.1)、K3(Q0.2)、K4(Q0.3)全部复位断开,变频器立即停止运行。同时,发出原点到达信号M0.0,让子程序SBR_1处理停顿2s时间,并由SBR_1处理正向重新运行设置。

本文创新点:

  往返式传动控制系统的多点定位是一个较难解决的问题,本系统采用PLC作为控制器,通过变频调速,利用光电编码器和PLC高速计数器进行定位控制,克服了往返式传动控制系统中由于机械惯性的作用给系统带来的定点误差,从而实现了jingque定位

引言

    随着可编程控制器(PLC)技术的迅速发展,PLC在我国各个工业控制领域中得到了越来越广泛的应用。而西门子公司生产的S7-200系列小型PLC,以其功能强人,使用稳定且而在中国市场上占有很重要的地位,其内部集成的通信接口为用户提供了强大的通信功能,根据不同的协议通过接口使得PLC可与不同的设备进行通信并组成网络,实现数据传送及控制等功能。S7-200系列PLC支持自由口协议,它为用户在使用时,提供了很多方便之处。本文主要研究的是在VB6.0环境下S7- 200PLC与PC机自由口通信的实现,并结合安全阀检测控制系统的开发实例加以说明。

1.系统硬件组成


 
图1蝶阀监测系统原理示意图


    系统主要由工控机、PLC、打印机和电气控制柜等组成,如图1所示。为了提高控制系统的可靠性与灵活性,系统采用PLC可编程逻辑控制器。PLC选型为SIEMENS公司的S7-200系列PLC,中央处理单元为西门子公司推出的PLC采用S7-200系列CPU226,该CPU在本机体中集成了2个RS-485通讯口,其,满足本系统的所有要求。

    使用485总线的一端连接PLC的通讯口PORT1,另一端通过RS-485/232电平转换器连接至PC机的RS-232串口,实现PC机向PLC发送命令帧、并接收PLC响应帧。

    系统共有6个台位,共有12个传感器,其开关量控制点数有限所以需要扩展模块EM221和EM231。

2.控制的内容和要求

    系统采用集散控制,工控机为上位机主要负责监控和管理功能:如数据的处理、与PLC通讯、误差修正等。PLC为下位机也是控制的核心,通过RS485接口与工控机相连。把发送信息输入到上位机,上位机向PLC发送发放的数据和指令。PLC接受上位机的信息并响应,实时控制电磁阀的打开合关闭,实时采集监测压力,并把每一路状态的相关数据反馈到上位机,由管理程序生成数据库,可对数据进行统计、报表、打印等。

   本控制系统设计任务需要实现以下目标:
    (1)可以监控蝶阀腔体内压力的变化,可以人工设定并自动控腔内压力值。
    (2)可以通过自动方式和手动方式控制该系统。
    (3)现场显示界面显示的内容主要包括:当压力值、当前的检测状态、实时故障报警和历史故障报警等。
    (4)通讯采用RS-485总线通讯方式,使PLC与远程PC机联系,实现通过PC机控制电磁阀的开关,来压力大小目的。PC机同时与其他系统发生联系,进而使工厂整个生产过程构成了一个有机的整体。

3 PC机与PLC通信基础

3.1PLC自由口通信命令

    所谓自由口通信模式即Freeport模式,它是建立在RS一485硬件基础上的一种通讯方式,它允许用户自己定义一些简单、基本的通讯协议设置,如数据长度、奇偶校验等等,通讯功能完全由用户程序控制[1]。自由口模式使用的相关的命令为XMT和RCV命令[2],分别用于发送和接收数据。这两个命令都对应各自的一个数据缓冲区,该缓冲区可以由用户在编程中决定,如VB100,即为从VBl00 起始的一块数据存储区。其中,XMT的缓冲区格式如图2
 


图2  RCV 的缓冲区格式为


    但应当注意的是,自由口协议必须在PLC处于RUN 模式下才有效,如果处于STOP 模式下PLC会自动的回到PPI模式(前提是使用PPI模式) 。

3.2 Mscomm 控件

    为了实现PC 机与下位机PLC 之间的通信,bbbbbbs 提供了Mscomm 控件以供用户使用。它封装了关于通信的相关内容,我们只需在Ⅷ平台中,设置其相关属性,并且对其的事什进行相应的编程即可使用。关于Mscomm 控件的一些重要属性见表1。

    关于Mscomm控件的事件,只有一种,即OnComm事件,通信中只要有错误或事件发生时,就会产生OnComm事件,而CommEvent 属性传回不同的错误或事件:


表1 Mscomm控件属性


    对应的数码值,据此可对事件进行处理。在本文的通信过程中,主要用到的是ComEvReceive值。当接收缓冲区有数据时产生该值,然后对bbbbb值进行相应的处理。

4.VB6.0平台PC机与PLC的通信

    Microsoft公司生产的Visual Basic6.0是bbbbbbs 环境下的一种可视化编程语言开发系统,它以强大的图形设计能力,简易的编程语言和容易学习使用等优点在工程中得到了广泛的应用,我们正是使用它进行了与PLC 通讯的开发。

    PLC I/O分配表见表2,只列出了4个台位的。,结合工程的实际,我们编制了相应的PLC 通信程序。由于篇幅有限,只列出部分程序。但在编程中需要注意的是,程序中与通讯有关的除了进行相关寄存器的设置之外,还应该对接受的命令进行判断,己选择运行相关的程序。另外,由于PLC 中的通讯口是RS—485通讯口,其为半双上通讯口,所以XMT 和RCV 命令不能同时运行。


表2 I/O分配表


PLC的中断程序

LDB=   SMB86, 16#20
LPS
MOVB   10, SMB34
ATCH   INT1, 10
AB=    ‘K‘, VB301
AB=    ‘C‘, VB302
AB=    ‘0‘, VB303
S      Q0.0, 1
LRD
AB=    ‘G‘, VB301
AB=    ‘C‘, VB302
AB=    ‘0‘, VB303
R      Q0.0, 1
LRD
AB=    ‘K‘, VB301
AB=    ‘P‘, VB302
AB=    ‘0‘, VB303
S      Q0.1, 1
LRD
AB=    ‘G‘, VB301
AB=    ‘P‘, VB302
AB=    ‘0‘, VB303
R      Q0.1, 1
LPP
NOT
RCV    VB300, 0

5 VB通信程序设计

   VisualBasic 开发包括界面的设计和程序的开发两部分。

5.1 人机界面设计

    人机界面使用户与计算机之间的中介,是软件产品的窗口。人机界面首先考虑的是如何能更好的满足用户的使用要求和操作习惯。人机界面的设计要考虑界面功能的全面和操作的简便。常用的功能要尽量安排在主界面中,如果有多个功能模块,可以将先对独立的模块用单独的界面表示,并与主界面双向连接。如图3

    本系统界面包括状态的监控、身份登陆、参数设定、报表查询、打印、报警和事件显示。 



图3 人机界面


    安全阀气密性检测控制系统 ,VB通讯界面设计时, Mscomm 控件的重要属性设置为:
    bbbbbMode 属性:comlnputModeBinary,按二进制方式读取数据,因为从PLC 返回的数据中包括ASCII码值超过128 的字节。
    Settings 属性:9600,n,8,1,选择9600bps波特率,不进行奇偶校验,8 位数据位,1位停止位,其设置要与PLC的设置一样,才能正常通信。
    RThreshold 属性:1,当接收到1个字符时,引发OnComm事件的ComEvReceive 常数。

5.2 通信程序设计

VB通信中接收事件的程序清单如下
If MSComm1.CommEvent = comEvReceive Then
S1 = MSComm1.bbbbb
    If (S1 = Chr(&H1B)) And (Len(SCOMS) > 5) Then
      SCOMS = ""
    Else
        If S1 <> Chr(&HD) Then
            SCOMS = SCOMS & S1
        Else
            Call MYSAVE(SCOMS)
        End If
    End If
End If
VB通信中分配变量
SCOMS = Trim(SCOMS)                          ‘接收到20个字段
SCOMS = Right(SCOMS, 20)
vh5 = Trim(Mid(SCOMS, 8, 4))       ‘压力值的存放(字符串)
yld1 = CCLng(vh5)
vh6 = Trim(Mid(SCOMS, 12, 1))      ‘自动信号
zdd1 = vh6
vh7 = Trim(Mid(SCOMS, 13, 1))      ‘充气信号
cqd1 = CCLng(vh7)
vh8 = Trim(Mid(SCOMS, 14, 1))      ‘排气信号

结束语

    在实际中采用自由口通信模式,运用VB6.0作为开发工具,方便的实现了S7—200PLC与上位PC 机间的通信,实现了对蝶阀气密检测的控制。经现场调试及运行表明,这是一种非常有效、可靠的通信方法,这种通信方法也可以应用于其它相关的通信场合,具有一定的普遍意义。


联系方式

  • 地址:上海松江 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201600
  • 联系电话:未提供
  • 经理:聂航
  • 手机:15221406036
  • 微信:15221406036
  • QQ:3064686604
  • Email:3064686604@qq.com