APP下载

奶牛饲喂机器人的PLC程序设计

2016-06-04赵毅赵尔迪王伟安鹤峰

农业科技与装备 2016年2期
关键词:通信机器人设计

赵毅 赵尔迪 王伟 安鹤峰

摘要:根据国内奶牛饲喂技术的特点及发展现状,采用PLC驱动饲喂机器人完成定位、给料、前后行走、转弯等动作。介绍PLC技术的主要特点、控制原理,以及PLC技术与计算机的通信程序,为提高饲喂机器人的给料精度提供参考。

关键词:PLC;奶牛饲喂;设计;机器人;通信

中图分类号:TP273 文献标识码:A 文章编号:1674-1161(2016)02-0030-03

奶牛业在我国畜牧业中占有举足轻重的地位。奶牛饲喂分为传统饲喂技术、TMR饲喂技术和饲喂机器人技术3种,与这3种饲喂技术配套的设备都有各自的优点和不足。

1 奶牛饲喂技术发展现状

目前,国内牛场普遍采用传统饲喂技术。传统饲喂技术有两种方式:一是粗精饲料分类喂饲,将青贮、干草、块根、糟渣类和精饲料分别喂给奶牛,每日3次挤奶、3次上槽饲喂。我国绝大部分奶牛场仍采用这种饲喂方式。二是经机械或人工搅拌后混合喂饲。传统饲喂技术易造成奶牛挑食和抢食现象,且饲喂过程繁琐,机械化作业困难,需要大量人工,生产率低。针对这一问题,国外一些发达国家于20世纪60年代开始推广应用一种新的饲喂技术——全混合日粮饲喂方式(TOTAL Mixed Ration,TMR),我国于20世纪80年代引入该技术。TMR饲喂采用先进的控制方式,将奶牛的精饲料和粗饲料加工调制、搅拌混合、送料及喂料连成一体化,能够使不同阶段的牛群饲养实现机械化、自动化、定量化和营养均衡化。研究表明:该技术可以有效增加奶牛对饲料中干物质的需求,提高牛奶中蛋白质和脂肪的含量,简化饲养程序,提高生产效率,提高产奶量约10%;受精/怀孕比从1.63提高至2.27;怀孕时间从395 d缩短到372 d。该饲喂方式也存在一些缺点,如成本过高、无法实现个体奶牛的饲喂等。而利用饲喂机器人(如图1所示)代替人工作业,就可以有效地解决这个难题。通过PLC的精确自动控制,可以提高饲料利用率以及产奶率,降低劳动强度,减少浪费,进一步提高牛场的投入产出比。 2 PLC技术的主要特点及控制原理

2.1 PLC技术的主要特点

可编程序控制器(PLC)因具有功能性强、可靠性高、使用灵活方便、易于编程及适应工业环境下应用等一系列优点而被广泛应用于工业控制。使用其作为系统的核心,不仅可使控制系统体积减小、功能易于扩展、系统工作更加稳定,还可大幅降低成本。PLC的主要特点为:1) 可靠性高,抗干扰能力强;2) 控制程序编程简单,多数采用继电器控制线路的梯形图形式,具有很好的柔性;3) 丰富的I/O接口模块,与外部设备连接方便,功能完善;4) 适应性强,应用灵活;5) 体积小、质量轻,是“机电一体化”特有的产品。

2.2 PLC饲喂控制原理

控制电路以PLC为核心。PLC接收嵌入式计算机的指令(同时向计算机发送相应响应),驱动周边控制器件,以完成机器人的定位、给料、前后行走、转弯等动作。采用PLC控制伺服电机,可使伺服电机控制螺旋杆更加精确地完成给料动作。该种方式的工作流程为:计算机负责将饲喂量数据转换成数据字符串→数据字符串指令发送给PLC→PLC驱动步进电机完成给定的步进量,完成饲喂过程。流程如图2所示。

通过轨道运行的饲喂机器人按奶牛个体体况饲喂相应的饲料。机器人由一个精料料斗和一个青贮料仓组成,悬挂于牛舍上部的工字钢上,使用完全免维护的长效电池驱动,可以实现在工字钢上运行到牛上方进行给料。

3 PLC与嵌入式计算机的通信程序设计

在现代工业控制领域,PLC已得到广泛而深入的应用,然而它也存在一些固有的缺点,如数据的计算处理和管理能力较弱、无法提供人性化的交互界面等。将PLC与计算机结合起来能弥补这些不足,两者结合的桥梁为PLC与计算机之间的通信。现以松下PLC-FP0为例,讨论PLC与计算机通信的规范和程序设计。

3.1 通信原理及规范

计算机与PLC间的通信一般采用RS485或RS232接口,信息交换以“帧”的格式进行。信息帧由ASCII字符串组成,其通信规范采用松下电工公司专用通信协议——MEWTOCOL-COM标准协议。在以计算机作为主站、PLC为从站的通信网络中,通信由主站发起,将命令帧发向从站,从站以响应帧或错误帧作应答。MEWTOCOL-COM协议对命令帧、响应帧及错误帧格式做了严格规定。

在图3所示的命令帧格式中:%OR<为MEWTOCOL-COM的命令帧开始标志,以%开头的信息帧单帧最大长度为118字节,<为扩展头,单帧最大长度可达2048字节;H,L为站地址的高位与低位;#为命令帧标识码;命令代码由两个字节组成,读写IR/SR区时为RR和WR,读写DM区时为RD和WD;BCC为两个字节的块检查码,由从帧开始标志起到文本数据最后一个字节止的各字节相或得到;CR为回车结束符。在发送多帧命令时用字符“&”连接。

值得注意的是,在多帧命令发送的过程中,一帧发送后,只有当PLC发回响应消息后,下一帧才能发送。

图4所示为错误帧格式,其中“!”为错误帧标识码;“Err”为两字节的错误标识码。

计算机运用MEWTOCOL-COM协议提供的命令对PLC的寄存器(X)、寄存器(Y)、数据寄存器(D)、定时器(T)、辅助寄存器(R)、计数器(C)进行读写及监控。不同的命令将通过命令帧中的命令代码来区别,MEWTOCOL-COM指令见表1。

3.2 通信程序的设计

上位机的通信程序基于C++语言编写,将各PLC读写命令以函数的形式封装到一个串行通信类CAccessPLC中。

3.2.1 CAN总线 CAN是Controller Area Network的缩写,是ISO*1国际标准化的串行通信协议,被广泛地应用于工业自动化、船舶、医疗设备、工业设备等领域。饲喂机器人的通信控制程序为:

voidCAccessCan::StartAccessCan()

{if(IsRun()) return;

m_CANRecv.m_pAccessCan = this;

StartThread();}

voidCAccessCan::StopAccessCan()

{StopThread();}

DWORD CAccessCan::RunThread()

while(!IsThreadAborted())

{Sleep(50);

m_CANRecv.Start();

WriteStationIDs();}

return 0;}

voidCAccessCan::WriteStationIDs()

{m_CANRecv.Start();

for (size_ti=0; iGetMilkStationDataNum(); i++)

CAN_PACKET Pkt;

//设置CAN Packet

memset(&Pkt;, sizeof(CAN_PACKET), 0 );

Pkt.dwType = CAN_PACKET_TYPE_STANDARD;

Pkt.dwID = 1;

Pkt.dwPrio = 0;

Pkt.dwDatLen = 8;

m_CANRecv.WriteCAN(&Pkt;);

strcpy(command, commandstr);

//定义BCC的高位和低位字符

char BCC_H, BCC_L;

3.2.2 生成BCC函数

charCAccessPLC:: exor(const char*rs, intlen, char*pH, char*pL)

{if (len<=0) return -1;

chareo;

if (len==1) eo =*rs;

elseeo = (*rs)^exor(rs+1,len-1, NULL, NULL);

if(pH &&pL;)

{if ( (eo>>4) < 0xA ) *pH = (eo>>4) + 0x30;

Else*pH = (eo>>4) + 0x37;

if ( (eo& 0x0F) < 0xA )

*pL = (eo& 0x0F) + 0x30;

Else*pL = (eo& 0x0F) + 0x37;}

returneo;}

3.2.3 接收响应 由于PLC与计算机的串行通信有一定延迟,所以在发送完一条指令后,应该等待一段时间再进行响应数据接收。

4 结论

机器人控制系统采用上、下机的控制结构,将管理和控制分离开来。机器人的控制作为下位机以嵌入式微处理实现控制任务。上位机为工业PC,主要实施奶牛场的管理。通过在牛舍安装轨道,简化移动式饲喂机器人的自主导航和定位,降低其控制系统的复杂程度和成本,为低价格饲喂机器人的推广和应用奠定基础。饲喂机器人的研究和开发,能够推进畜牧业的自动化和奶牛场的科学管理,提高奶牛的产奶量和身体健康水平,可在奶牛场广泛推广应用。

参考文献

[1] 范冠雄.基于Visual C++的数据库访问技术比较研究[J].计算机与数字工程,2010(1):54-57.

[2] 杨存志,李源源,杨旭,等.FR-200型奶牛智能化精确饲喂机器人的研制[J].农机化研究,2014(2):120-122.

[3] 李源源,王军,闫景凤,等.奶牛精确饲喂机器人的设计[J].农业科技与装备,2013(11):36-37.

猜你喜欢

通信机器人设计
BUBA台灯设计
有种设计叫而专
简述计算机通信网络安全与防护策略
Android环境下主UI线程与子线程通信机制研究
无线自组网在野战防空通信系统中的应用
对数字微波通信技术的研究
匠心独运的场地设计画上完美句点
机器人来帮你
认识机器人
机器人来啦