在接收信息时我们采用了接收中断而没用接收指令(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或无线通信模块向主站告诉故障已经解除。要求主站重新建立地址轮询表,建立地址信息。按照重新建立的地址轮询表发射数据信息。
西门子S7-200系列PLC的高速脉冲输出功能是指在PLC某些输出端产生高速脉冲,用来驱动负载实现精确控制。PLC主机最多可提供2个高速脉冲输出端,即Q0.0或Q0.1。每个高速脉冲发生器对应一定数量的特殊寄存器,包括控制字节寄存器,状态字节寄存器和参数数值寄存器,它们用以控制高速脉冲输出形式,反映输出状态和参数值。PLC控制电机中通过脉冲输出指令(PLS)检查为脉冲输出(Q0.0或Q0.1)设置的特殊存贮器位(SM),然后启动由特殊存储器位定义的脉冲操作。脉冲由Q0.0或Q0.1输出控制电机。
如何控制电机,使小车能及时以直线、曲线、停止的方式进行运行,且运行过程连续、平稳,避免小车出现异常行为,如突然的大转弯、急刹车等,是我们必须要解决的一个重要问题。因此,小车的启动、每步控制之间的过渡、停止都要处理好,输出脉冲的周期要连续,解决方法。
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小车停止。采用此方法后小车的运行是连续平稳的。
控制系统程序流程框图如图3所示,整个程序共有4大块组成:①对S7-200各个变量、中断初始化;②主站同各从站进行信息通讯;③进行定位处理;④控制电机。
整个程序量是巨大的,合理安排程序结构显得很重要。当没进行通信时,S7-200反复扫描执行周期,出现字符中断时,对接收到的信息进行保存处理,因为S7-200顺序执行的特点,这要在很多执行周期内完成。但是每个执行周期的时间都是短暂的。所有的从站都通信完毕,调用定位子程序求出小车所在的空间位置。然后顺序调用模糊控制子程序、电机控制子程序。这三大块子程序要在同一周期内完成,此周期执行时间是最大的,程序必须简单实用,使执行周期尽可能的降到最小值,减小控制的时滞。从宏观上看扫描周期显现出伸缩性的特点。
针对浆液下移动机器人的功能要求及PLC所具有的特点,搭建的浆液下移动机器人控制网络具有特性,实现了网络间的通信,对电机控制方法进行了探讨,使电机能连续平稳的运行,最后对整个控制系统的软件程序进行了设计。本文所涉及到的工作已调试成功。