岸边桥式集装箱起重机plc程序的设计与实现
3. plc程序的统一性问题
3.1. plc程序统一性问题的发现
在岸桥的plc程序编写完成后,我们随即在岸桥上进行了调试,由此发现了程序的统一性问题,该问题是这样的:我们所进行的这个项目有12台岸桥,在岸桥上,有些数据的定义需根据现场的实际情况来定义,举一简单的例子:
比如小车机构位置编码器的零位数据offset,对于调试的第一台岸桥,我们可以很容易加以这样定义:将小车机构行驶到 后面的终点位置,读出小车在该位置时位置编码器的读数,以此作为小车机构位置编码器的零位数据offset。但我们在调试第二台岸桥时发现,由于机械安装的误差,第二台小车机构行驶到 后面的终点位置时,读出的小车位置编码器读数与第一台岸桥的数值不相同。也就是说,我们必须将第二台岸桥的小车机构位置编码器的零位数据offset设置成不一样的数据。
与此有相同问题的数据还有诸如重量传感器的比例系数,小车自动停车时停车位置点,俯仰机构的上升终点位置等等。这些问题都产生了一个后果,调试结束后每台岸桥都有对应的plc程序,彼此之间不统一。
3.2. 解决plc程序统一性问题的分析
分析这个问题,我们设想了以下解决问题的方法:
n 我们可以增加设计这样一段解决问题的“岸桥编号识别”程序:首先让各台岸桥编号:比如岸桥1,岸桥2。。。。。。岸桥12,plc程序运行“岸桥编号识别”程序来判定该岸桥的编号,如果是岸桥1,“岸桥编号识别”程序就执行将岸桥1的数据装载到一“共用数据块”。
“岸桥编号识别”执行完毕后,我们所需要的数据都在这“共用数据块”中,之后plc在程序运行时,如需要用到那些各台岸桥有差异的数据,就可以从该“共用数据块”中读取所需要的数据。整个过程如图3-1所示:
图3-1:“岸桥编号识别”程序
3.3. plc程序统一性问题的处理
有了以上的思路,接下来我们就着手开始解决这个plc程序统一性问题:
l 第一步:对岸桥进行编号:
将岸桥定义为岸桥1# 至岸桥12# ,但是如果要让plc能够识别这些编号,那么我们必须设置输入信号送给plc,我们利用了一个备用的输入字节ib256来定义岸桥的编号,在plc系统的硬件输入上,我们按此定义对各台岸桥接入高电平,每台岸桥不同,如下图3-2所示:
l 在程序中为每台岸桥设置一个db数据块(database),分别为db201~db212,分别对应岸桥1~12的数据,如下图3-3所示:
图3-3:岸桥1~12数据块
l 编写“岸桥编号识别”程序:创建一功能fc74用于处理不同岸桥编号识别,然后将对应岸桥的数据块db20x数据传输给一共用数据块db74。如下图3-4所示:当岸桥编号craneid是2的时候,将岸桥2的数据块db202的44个字节传输到共用数据块db74中。
图3-4:“岸桥编号识别”程序
l plc读取共用数据块中的数据:plc可以任意读取共用数据块中的数据,该数据就是对应相应岸桥的数据,如下图3-5所示程序:
图3-5:读取“共用数据块db74”数据程序
由此,我们通过程序的修改完全解决了plc程序统一性的问题,使该plc程序更加完善,可靠。