基于PLC的浆液下移动机器人控制系统
扫描二维码
随时随地手机看文章
目前,在移动机器人控制技术和PLC应用方面有很多人已经做了相关的研究工作。本文研究的机器人(小车)工作在大约40 m深的浆液下,为防止水煤浆由于长时间的存贮而沉淀,在按照规划的轨迹移动时完成搅拌水煤浆功能。基于超声波传感器和电子罗盘的实时测量位姿信息,查模糊控制表,控制电机,使机器人能及时、连续、平稳、按规划轨迹运行。采用西门子S7-200系列PLC作为主控制器来实现对浆液下移动机器人的控制。
1 控制系统基本构成
在移动机器人的应用中,精确的位姿是跟踪控制首要解决的问题。为此,本机器人的定位采用了超声波网络定位系统,导航采用了电子罗盘。整个控制网络如图1所示。
图1 机器人控制网络
PLC系统为控制系统的核心,做主站管理各从站,起到总的控制作用,通过RS-485总线同各个从站进行数据传递。PLC把各个从站得到的信息经过加工处理后,得到最终的控制命令传给电机,控制机器人进行准确的行走。TD200可对PLC的参数进行实时的修改,达到实时控制的需要。
1号单片机、2号单片机、3号单片机记录发射超声波信号在介质中的传播时间,乘以超声波的传播速度,可以计算出相应的距离,通过定位算法便可对机器人进行定位。超声波在介质中的传播速度随温度变化,有着特定函数关系,因此可以借助温度传感器对超声波的速度进行修正。电子罗盘可获得小车的姿态,实现小车的导航。
操作员通过无线通信的方式达到对机器人的无线控制。无线控制是对有线控制的一种辅助措施,使机器人能得到更理想的控制效果。当主控制系统控制失效,机器人出现意外情况,通过定位系统测量发现机器人偏离规划轨道,此时,利用无线控制可使机器人及时回到规划轨道。
2 网络通信
2.1 通信协议的选择
S7-200 PLC支持多种通信息协议,如点到点接口(PPI)、多点接口(MPI)、PROFIBUS及用户自定义协议等。
通过使用接收中断、发送中断、字符中断、发送指令(XMT)和接收指令(RCV),自由端口通信可以控制S7-200 CPU通信口的操作模式。利用自由端口模式,可以实现用户定义的通信协议,连接多种智能设备。
CPU处于STOP模式时,自由端口模式被禁止,CPU重新建立使用其他协议的通信,例如与编程设备的通信。只有当CPU处于RUN模式时,才能使用自由端口模式。通过向SMB30(端口0)的协议选择域置1,可以将通信端口设置为自由端口模式。处于该模式时,不能与编程设备通信。SMB30其他位还可以设置端口0通信的波特率和奇偶校检等参数。在此,我们所研究的机器人采用了自由端口模式。通信协议我们采用Medbus协议。Modbus协议是美国可编程控制器供应商Modicon公司制定的一种工业通讯协议,现在已经被许多工控厂商所支持,广泛应用于智能仪表、总线控制等领域。其物理层遵循RS-485标准,RS-485总线具有信号传输速率快、传输距离更远、抗干扰能力强等优点,其接口可以有多个驱动器和接收器,很容易实现PLC与多台智能设备之间的通信。
2.2 网络通信的关键技术
在接收信息时我们采用了接收中断而没用接收指令(RCV)。接收字符中断是每当接收缓冲区SMBZ中接收到一个字符便产生一次中断,能在中断中对所接收到的字符进行适时处理,如果不正确,能及时进行第二次或更多次的发射和接收一直到达成功,并不影响字符和字符间的接收工作。更确切的说对字符的处理是在接收字符之间的间隙进行的。但是RCV指令一次性的接收完对方发射的所有信息,最后一个字符接收完,执行中断事件才能对所接收到的字符进行处理,如果不正确,到这时才能重新发射和接收,这与上一种方法相比浪费了时间。两种方法所用到的全局变量VB是一样的,用接收指令RCV程序会简洁些,但是从适时的角度我们选择了接收字符中断。
PLC是主站,1号单片机、2号单片机、3号单片机、无线通信模块、温度传感器、电子罗盘都作为从站,地址依次是3lH,32H,33H,34H,35H,36H。当各从站都没有出现故障,且主站同各从站通信,从站都能给与正确的回应信息时,建立起的地址轮询表是3lH,32H,33H,34H,35H,36H。主站按照这个地址轮询表所建立起的地址同各从站进行数据通信。当某一个从站出现故障,如2号单片机同主站不能进行通信,建立起的地址轮询表是31H,3H,34H,35H,36H。主站按照这个地址轮询表同各从站进行数据通信,并及时报警要求查找故障。但是这时并不影响对小车的控制,因为通过1号单片机、3号单片机仍然能对小车进行定位,仅仅是定位的精度不十分精确。整个控制过程没有间断而是连续的进行。
我们可以根据报警信息,查出有故障的单片机。当查好后我们可以通过TD200或无线通信模块向主站告诉故障已经解除。要求主站重新建立地址轮询表,建立地址信息。按照重新建立的地址轮询表发射数据信息。
3 电机控制
西门子S7-200系列PLC的高速脉冲输出功能是指在PLC某些输出端产生高速脉冲,用来驱动负载实现精确控制。PLC主机最多可提供2个高速脉冲输出端,即Q0.0或Q0.1。每个高速脉冲发生器对应一定数量的特殊寄存器,包括控制字节寄存器,状态字节寄存器和参数数值寄存器,它们用以控制高速脉冲输出形式,反映输出状态和参数值。PLC控制电机中通过脉冲输出指令(PLS)检查为脉冲输出(Q0.0或Q0.1)设置的特殊存贮器位(SM),然后启动由特殊存储器位定义的脉冲操作。脉冲由Q0.0或Q0.1输出控制电机。
如何控制电机,使小车能及时以直线、曲线、停止的方式进行运行,且运行过程连续、平稳,避免小车出现异常行为,如突然的大转弯、急刹车等,是我们必须要解决的一个重要问题。因此,小车的启动、每步控制之间的过渡、停止都要处理好,输出脉冲的周期要连续,解决方法如下。
图2 电机控制
图2中f轴表示:频率;t轴表示:发射脉冲数。小车刚开始启动阶段以f1的频率启动,加速到f2,发射的脉冲数是t1-t0。,然后以f2的频率匀速,规定每4 s对小车进行一次定位和控制,假设在t2时正好是4 s,开始对小车进行控制,但是,定位和控制过程需要一段时间,当发射控制命令时,小车可能已不在原来定位的点。此时时间已超过4 s,设此时滞的时间为t,计算所要执行的程序量,t的最大上限值是0.1 s,这么小的时间完全可以忽略,在时滞的时间内让小车仍以原来发射脉冲频率运行,当发射的脉冲数是t3时开始对小车进行了新的控制,小车进行下一步的运行。然而,此刻仍以前一步的频率为开始发射频率。
转换办法是通过两条命令:①MOVB 0,SMB67;②PLS 0。使前一步的运行立刻停止,接着调用新的包罗段控制小车进行下一步的运行,下一步的开始周期是前一步的结束周期,加速或减速到本步规定的周期(如图2所示),加速或减速的时间尽可能短,以此周期匀速运行。小车在运行的整个过程中每步之间处理方法都是这样。图中所示为频率减小到f5小车停止。采用此方法后小车的运行是连续平稳的。
4 软件设计
控制系统程序流程框图如图3所示,整个程序共有4大块组成:①对S7-200各个变量、中断初始化;②主站同各从站进行信息通讯;③进行定位处理;④控制电机。
图3 程序流程框图
整个程序量是巨大的,合理安排程序结构显得很重要。当没进行通信时,S7-200反复扫描执行周期,出现字符中断时,对接收到的信息进行保存处理,因为S7-200顺序执行的特点,这要在很多执行周期内完成。但是每个执行周期的时间都是短暂的。所有的从站都通信完毕,调用定位子程序求出小车所在的空间位置。然后顺序调用模糊控制子程序、电机控制子程序。这三大块子程序要在同一周期内完成,此周期执行时间是最大的,程序必须简单实用,使执行周期尽可能的降到最小值,减小控制的时滞。从宏观上看扫描周期显现出伸缩性的特点。
5 结束语
针对浆液下移动机器人的功能要求及PLC所具有的特点,搭建的浆液下移动机器人控制网络具有特性,实现了网络间的通信,对电机控制方法进行了探讨,使电机能连续平稳的运行,最后对整个控制系统的软件程序进行了设计。本文所涉及到的工作已调试成功。