吴强泽 袁永明
摘要 投饲机是继增氧机后又一种量大面广、显著效益的水产养殖机械,传统的渔用投饲机多采用机械定时的控制模式,常因精度差、定时不准而造成饲料浪费。针对这一问题,该文提出一种基于PLC控制技术的解决方案。研究了以水温为输入参数的定时控制方法,重点对定时控制器的硬件构成和 PLC 控制软件的设计与实现进行了详细阐述,最后对其进行实际运行测试。测试结果表明,系统操作简单、运行稳定,投喂效果良好。
关键词 投饲机;PLC;水温;定时控制器;软件设计
中图分类号 TP273;S951.2 文献标识码 A 文章编号 0517-6611(2015)34-350-03
2007年的中央一号文件明确指出,发展现代化农业是社会主义新农村建设的首要任务[1]。现代渔业作为现代农业的重要部分,具有规模化、集约化、标准化和产业化的特征。相对于我国水产养殖行业的规模,以及国外设施渔业的发展水平,我国的现代渔业相对滞后,自动化程度较低,尤其在投饲方面较为突出[2-3]。渔用投饲机集定点、定时和定量于一体,具有投饲面积广、投饲均匀、减少饲料浪费、降低水质污染的优点。使用该机械既减轻了渔民的劳动强度,又增加了鱼的产量。投饲机是继增氧机后又一种量大面广、有显著效益的水产养殖机械[4]。现有的投饲机大多采用机械定时的简易控制系统。这种定时方式有着两个核心问题:一是需要人工定时,不能自动开启;二是由于定时原理简单,常因接触不良造成定时不准,甚至因为停走而投完饲料,造成浪费并污染水质。基于PLC的定时控制器可很好地解决上述问题,同时也是渔业生产自动化过程的重要尝试,对池塘养殖的现代化发展具有重要意义。
1 传统投饲机控制
1.1 常用控制器类型 投饲机的控制器的主要功能是开关,定时和间歇控制功能,一般分为机械定时、电子定时和PLC或单片机为核心的控制器。按自动化程度分为半自动和全自动两种。机械控制器采用机械旋钮的定时方式,一般设有开机、定时时间、每次抛料的时间以及落料间隔时间这几个控制按钮。除了机械定时,市面上也有很多电子定时的控制盒,这种控制器摒除了不准确的机械旋钮记时方式,采用电子控制按键,并且支持LED显示的较为先进的模式,但是仍不能设定长时间的投饲计划。PLC或单片机为核心的控制器,属于全自动的控制模式。符合更先进的渔业生产需要。但是考虑到养殖成本问题,目前投放到市场的上仍以机械定时控制的投饲机为主流。
1.2 机械定时器原理 定时器按结构和性能,一般可分为3类:机械发条式、电子式和电动式[5]。由于机械发条式定时器价格低,操作方便、维修容易、适应面较广等特点,普通投饲机也采用这种机械定时控制装置,相当于一个内置机械时钟,通过齿轮和发条的转动来记录时间。
机械定时器内部结构主要由3部分组成:第1部分是动力部件,由发条[6]、上发条的单向机构,人工拧转时发条拧紧就提供了整个系统的动力;第2部分是释放部件,由一系列的齿轮组成,齿轮变速,使发条松弛时的旋转周数增加,在齿轮系的末端有擒纵轮、擒纵爪和游丝,用来保证齿轮系在发条的驱动下以恒定的速度转动。游丝上设有调整游丝长度的装置,以调整擒纵爪摆动的频率,保证齿轮按设定的转速旋转,避免将已拧紧的发条一下子松完,同时也不受发条松紧的影响而导致转速的变化;第3部分是定时触发装置,使齿轮系中某个齿轮转到一定角度后发出一个电信号或机械信号,停止供电。
1.3 局限性分析 这种以机械定时器为控制核心的投饲机只是单纯的取代手工抛洒这一重复性动作[7],有着诸多的局限性。
(1)自动化程度低。传统的投饲机工作时必须人工设定时间,每次定时只能完成一次投喂。一天投喂多次时需每次提前转动定时旋钮。在炎热天气,人力不足时造成养殖户很大困扰;(2)定时不准确。这种以机械定时器为控制核心的投饲机,设定定时档时,需转动旋钮到需要的时间刻度,然后发条开始松动,机器开始工作。这样多次摩擦过后发条和齿轮被损耗,导致定时不准。(3)容易停走。机械定时装置工作一段时间后,内部结构长时间磨损,受环境腐蚀,发条与齿轮转动不顺畅,甚至卡住,导致投饲机停走。这种情况下饲料可能一次被投完,从而造成浪费。
这种机械定时的控制方式虽然能满足日常的池塘鱼类养殖需要,但受限于其局限性,必将被新型的定时装置所取代。
2 PLC控制方案设计
2.1 基本方法 控制器以PLC为控制核心,水温为控制变量,时间为输出变量。鱼类生长对水温有着很高的要求,以罗非鱼为例,养殖水温要求在18~32 ℃之间[8], 最适水温为28~30 ℃[9],這种水温条件下摄食效率最高。水温传感器选用Troll9500多参数水质监测仪,支持RS485接口,可测水温范围为-5~50 ℃。PLC支持RS485接口,读取的温度值可被存储。计算前一天的水温平均值作为输入变量决定第2天的定时方案。具体设计如下:当水温低于20 ℃或高于30 ℃时,每天只投喂1 次,投饲时间定在上午9 点;当水温在20~25 ℃之间时,每天投喂2次,投饲时间选在上午9点及下午5点;当水温在25~30 ℃之间时,每天投喂3次,时间分别设定在上午8时、下午 2 时和 6 时。确定投喂次数后,再决定每次的投喂量。由于鱼类有在早上进食欲望高于傍晚的习性,因此可早上多投,傍晚少投。投饲量在PLC设计时以时间长度推算,具体时间由投饲机的投饲速率试验得出。
2.2 投饲速率 试验所用投饲机为振动离心式投饲机。具体为江苏省无锡市凯灵电泵厂的凯灵STLZ120WB投饲机。整机重量35 kg;配套电压220 V;料箱容量60 kg;投饲距离3~15 m;投饲扇形角90~130度;最大投饲能力≥200 kg/h;投饲破碎率≤5%;适用水面0.66 7~1 hm2。
试验前,调整投饲机的落料时间为5 s,间隔时间为7 s。为统计方便,把开关拨到常开,用手机计时5 min后手动关闭,投出的饲料用大塑料袋收集,然后称出重量,连续测5次,计算其平均值。试验中发现机器开启时都有17 s的预热时间,之后才开始投喂饲料,因此实际计算时需减掉17 s的时间,具体数据见表1。
由表1可知,5次投喂,所投饲料重量的平均值为8.465 kg,其标准差只有0.158 8,说明相同时间内的投饲机的投饲量是相对稳定的,用投饲速率表示投饲机的工作效率是可靠的。所得重量除以时间即可计算出投饲机的投饲速率,约为29.91 g/s。
2.3 定时分配 试验选在尼罗罗非鱼和奥利亚罗非鱼混养模式池塘,饲料选用通威配合饲料1038,袋装40 kg。初期放养鱼体总重331 kg,平均体重约158 g每尾。若日投喂量占鱼体总重的3%,即一天需投喂饲料9.93 kg。投饲机的投饲速率为29.91 g/s,可计算一天总的投喂时间为332 s。由于投喂次数和时间根据水温有所不同。需分配每次的投喂时长,不考虑天气等诸多因素,设当天正常投喂。定时1次:投喂全部饲料;定时2次:早上和傍晚的投喂比例为3∶2;定时3次:早上、中午以及傍晚的比例为4∶3∶3。每次开机时间需加上预热17 s,具体投饲时间如表2所示。
养殖周期内,鱼类会急速增重,这时具体投喂时间需根据鱼的规格及时调整。
3 PLC实现
3.1 硬件选型 PLC选用国产耐特LT200系列,具体型号为“CPU224XP AC/DC/RLY”。24VDC电源供电,14DI/10DO晶体管,2AI/1AO,可连接7个模块,2个485编程通信口支持,可采用PPI协议连接市面上常用的文本、触摸屏和上位组态软件。功能指令均可兼容西门子CPU224系列产品。人机交互选用LTMD204L可编程文本显示器,通过编辑软件TP200CN在计算机上制作画面,自由输入汉字及设定 PLC 地址,使用串口通讯下载画面,20个按键可被定义成功能键,有数值输入小键盘,操作简便。
3.2 程序设计 LT200系列支持IEC 11313及SIMATIC指令集[10],支持中英文编程,可直接使用STEP7MICRO/WIN SP9软件编程,支持梯形图、指令表以及功能图等多种编程语言。
3.2.1 系统符号定义。设计程序时,为方便修改参数,预先自定义符号及其地址。如“addr0”表示传感器地址,“addr1”表示保存寄存器的地址。这种自定义符号并分配地址后,修改参数时无需重新编写程序,改变寄存地址的数值即可。具体地址和初始賦值见表3。
3.2.2 传感器值读取。所选传感器支持RS485通信口,在西门子S7200系列PLC编程中需安装MODBUS协议库。首先需初始化主站和从站。初始化从站的程序片段如图1所示。
SM为特殊标志继电器。“SM0.1”是首次扫描为1,以后为0,常用来对程序进行初始化。“SM0.0”表示始终接通。图1中“addr0”为传感器地址。“parity”为校验位。“Mode”为1表示执行Modbus协议。波特率选用9600。“Delay”为延迟。“MaxAI”为保存寄存器最大数目。“MaxIQ”为I和Q最大数目。“MaxHold”表示保存寄存器最大数目,“Holdstart”表示保存寄存器在V内存中的起始地址。
初始化后使用MBUS_MSG指令(或用于端口1的MBUS_MSG_P1)用于启动对Modbus从站的请求并处理应答,程序如图3所示。
“Slave”为从站设备地址,允许范围是0-247。“RW”为读写指令。值为“0”表示读,值为“1”表示写。“Count”表示指定要在该请求中读或写的数据元素数目。对位数据类型而言,Count是位数,对字数据类型而言,Count是字数。“DataPtr” 是间接地址指针,该指针指向S7200 CPU中与读或写请求相关的数据的V存储器。利用此指令可读出传感器的一串数据值。
3.2.3 定时控制。水温决定定时控制的方案。依据表2,T<20、T >30时输出“M1.1”,定时1次。20≤T ≤25时输出“M1.2”,定时2次。25 程序设计时首先使用读实时时钟(TODR)指令从硬件时钟中读当前时间和日期,并把它装载到一个8字节,起始地址为T的时间缓冲区中[11-12]。程序片段如图4所示。 “SM0.5”表示时钟脉冲,每1秒读取1次。T设为“VB0”表示以“VB0”为起始地址的 8 字节缓冲区,依次存放年“VB0”、月“VB1”、日“VB2”、时“VB3”、分“VB4”、秒“VB5”、0“VB6”和星期“VB7”。 投饲机的定时控制不需要考虑年、月、日,因为每天都定时定点开启。所以只需比较时、分、秒。参考前文可知投饲机每次投喂时间不超过1 h,所以小时位不会变动。分秒同时进行比较。由于“VW1”等同于“VB1”和“VB2” ,“VB3”为时,“VW4”即表示分和秒。具体定时控制梯形图程序如图5所示。