北海西门子专业授权代理商
2 应用设计
2.1 控制要求
由于客户的养殖厂地处偏远,供电系统不稳定,而且停电现象相对比较频繁。根据实际情况,当时客户对控制系统提出了以下几点要求:
1、 系统要稳定可靠,可长时间无人值守自动运行。
2、 整个系统要停电后能自动重新启动并且能按照停电前的设定继续工作。
3、 可以保存多组配方,并能按预先设定的配方自动配料。
4、 能自动保存3个月的系统工作记录,并且能在计算机上方便的查询记录结果。
5、 要为以后的组网余留通讯接口。
2.2 系统分析
根据客户提出的控制要求,罗升企业的工程师对施工现场进行了考察。在施工现场工程师发现客户的22个信号点相对于控制室比较分散,*远处离控制室有150米远,*近的也超过10米。如果只用1台PLC在控制室,要料信号、料门开关到位信号以及输出控制都通过铺设电缆来实现的话,就会造成现场布线麻烦和线缆成本过高。于是我们采用了两台丰炜PLC作Parallel bbbb通讯的方案来解决这个问题。
另外由于系统所在地区经常停电,上位机如果选用工控机的话,可能会因为经常停电而损坏。因此我们选用了稳定可靠的罗升瑞典BEIJER人机,该人机不但能保存大量的工作数据,而且可用FTP的方式通过以太网方便的访问。
经过上述分析,我们提出了以下控制方案:
自动饲喂控制系统框图
2.3 运行画面
配料系统画面
3 程序要点
3.1 罗升瑞典BEIJER FTP服务器模式的设置
此系统可按照客户要求实现按照配方自动配料,并保存当前的实际配料信息到PLC中的资料银行当中,然后以Excel表的格式转存到BEIJER人机当中。另外BEIJER的Ftp功能可让远方的计算机方便的把保存在人机当中的数据给读取出来,供人们在计算机上查询。
BEIJER FTP服务器模式的设置
3.2 罗升丰炜PLC Parallel bbbb网络设置
两台丰炜PLC采用Parallel bbbb网络进行通讯,采集处理共22个饲养单元的要料送料任务。从站PLC在远端采集11组的要料信号,可实时的把远方的要料信号传送到主站PLC当中供主站判断使用,主站通过堆栈指令保存所有当前的状态,即使停电后再来电也能准确的把所配好的送到指定的料口。
3.3 实施效果
在此系统中高端的罗升BEIJER人机发挥了他强大优势:①大量的数据存储功能,供客户存储3个月的数据。②方便的网络功能,可通过FTP模式把存储的数据传送到计算机上。③6万4千色的真彩显示,可方便的组态丰富的画面。④余留有串口和以太网接口,为以后的系统扩充留下空间。
经济灵活的罗升丰炜PLC也展现了他与重不同的特点:①方便的组网功能,只用通过硬件连接和简单的设定就可实现多台PLC的数据共享,在分散控制当中可为客户实现灵活的搭配方案。②稳定的AD采集模块,为称量的准确提供了可靠的保证,在500kg的满量程称量时达到了0.5kg的精度③在需要大量掉电数据存储的时候,128K的资料银行为数据存储提供了极大的便利
4. 组态软件CAN驱动
4.1. 组态软件CAN驱动特定
图4.1 组态软件CAN驱动
组态软件的CAN驱动程序,如图4.1所示,是人机界面和组态软件的接口,其功能和特点是:
CAN总线数据传递给组态软件的接口:
驱动要借助系统的设备驱动接口,读取CAN总线数据,并通过组态软件的标准形式,传递给组态软件的实时数据库。
可以通过多种形式保证数据发送和接收成功:
1)、驱动内部,判断CAN控制器发送错误信息;
2)、通过写入设备寄存器,然后,读取判断寄存器写是否成功。
关注CANopen协议操作应用层面:
驱动程序中,并不需要整合CANopen整个协议栈,支持CAN2.0协议就足够。然后,CANopen协议部分通过组态逻辑解决。
可以通过多种形式保障数据的完整性和实时性:
实时性就是*新发送总线数据,能够在规定的延时内,进入组态软件的实时数据库。完整性就是能够将所有的数据报文抓取到组态软件,并进行完整的数据处理和存储。根据控制工艺的要求,我们可以设置总线数据上发的频率,通过HMI嵌入的CAN控制器设置屏蔽减少非目标数据,也可以通过组态软件对CAN控制器和驱动缓冲区的处理数据收发性能。
4.2. HMIBuilder软件CAN驱动映射关系
4.2.1. HMIBuilder组态软件
HMIBuilder组态软件是北京昆仑纵横科技发展有限公司(Http://www.hmibuilder.com)推出的分布式组态软件。现场总线是HMIBuilder软件关注的重点之一。
4.2.2. HMIBuilder设备站参数对应PCI1680U的一个Port口
针对研华PCI-1680U板卡,在设备站参数设置中,其端口、设备号可以选择(见图4.2),波特率可以设定,比如Port1,设备号为0,波特率:250K。这些对应Advantech Device Magnager中的HardwareSetting(见图4.3)。其协议类型和远程帧方式对应CanMEx.exe测试程序中对CAN卡的进一步设置(详见图4.4),其中CanMEx.exe在安装研华Demo后目录中,如C:\Program Files\Advantech\CAN\CAN Examples\Examples\VC\CanMEx)。
图4.2 站参数选择
图4.3 HardwareSetting
图4.4 CanMEx
4.2.3. HMIBuilder模拟量CANopen帧的数据域
在图4.5中,其中Message内容为数据域的ASCII码形式解码。在HMIBuilder中,PCI1680U对应的点参数的设置方法如图4.5。其中,ID可以CANopen设备的PDO。如果要读PDO数据域的第一个Byte数据。那么设置如下:416:0:U8:R。也就是416表示设备ID,0表示偏移量,U8-表示8位无符号整形。也就是说,起始偏移为数据域按照字节的偏移,取值为0到7。如果按照F32数据类型,起始偏移取值为0和1。
图4.5 点参数的设置
注意:本驱动的解码方法包括8位无符号数据、8位带符号整数、16位无符号整数、带符号整数、16位BCD整数、32位无符号整数、32位带符号整数、32位BCD整数、32位浮点数。
5.应用实例
下面,我们针对芬兰Axiomatic公司MVINC-CO-x-range型号倾角传感器,实现CANopen模块的人机界面接入。
1、物理连接
准备首先正确接线,连接研华的PCI-1680U板卡;然后用研华的随机测试软件进行测试。如果测试通讯完成后,再进行下一步,连接带CAN通讯的下一级设备,在这里我们测试Axiomatic公司MVINC-CO-x-range型号倾角传感器。
2、倾角传感器分析
通过阅读传感器的技术说明文档,我们的目标是通过组态软件可以控制倾角传感器的启动和停止,同时采集传感器的倾角信息。模块的启动和停止可以通过NMT指令实现。模块的倾角信息通过TPDO1数据对象周期上传。我们也知道通过SDO,可以配置对象字典,通过层设置服务(LSS:Layer setting service)可以设置模块的Node-ID和波特率等,但是,这些不是本文的目标,也就是,这些不是操作应用层面关注的,而是系统设置层面关注的。
3、HMIBuilder站参数组态
设置一个站,选择驱动程序。如下:
图5.1 站参数设置
配置协议,参数设置如下:
用PCI-1680U板卡的第一个端口接收数据,所以在设备中选择Port1,设备号选择第一个设备,波特率选择250k(和传感器波特率相同),屏蔽码为255。
图5.2 通信设置
4、倾角传感器的NMT对象组态
表5.1 [3] 网络管理对象(NMT)数据报文格式
CAN-ID如果为0X00,表示总线上所有节点都执行相关命令操作。
命令分类为:
表5.2 [3] CAN模块命令
在HMIBuilder数据组态中,我们设置启动CAN模块2个模拟量参数如图,要求ID都为0,偏移地址连续,而其分别为0和1。
图5.3 模拟量参数设置
注意:
地址为0,偏移量为0
图5.4 地址无偏移
地址为0,偏移量为1.
图5.5 地址偏移一位
5、倾角传感器TPDO1对象组态
通过倾角传感器相关技术文档,我们可以察看设备定义的数据对象字典,确定数据报文的数据域的内容。比如TPDO1,对于MVINC-CO-2-180模块,CAN数据报文发送7个字节数据,数据的定义为:
Sub1为纬度角(Latitude angle),16Bits;
Sub2为经度角(Longitude angle),16Bits;
Sub3为温度(temperature),8Bits;
Sub4为辅助输入(Auxiliary bbbbb),16Bits;
表5.3 [3]MVINC-CO-2-180模块的TPDO1对象的数据字典内容
倾角传感器上传数据的格式:
表5.4 TPDO1对象的数据报文
如果我们读取CAN模块7个模拟量参数,需要在组态软件中做如下设置:
图5.6 模拟量参数设置
地址设置如下:
图5.7 采集上来的数据
图5.7 地址设置 偏移0.对应D0:416:0:U8:R
图5.8地址设置 偏移1对应D1:416:1:U8:R
注意:
读上的数据为7位,ID不变。设置偏移为0…6
6、HMIBuilder组态完成
配置启动画面
图5.9 启动画面
运行情况:
图5.10 运行结
果
6.结束语
通过HMIBuilder组态软件的CAN总线通信设置,实现了对倾角传感器数据的采集。进一步,我们可以看到:HMI系统中,我们主要关注CANopen协议的数据对象PDO部分,同时,其他数据对象也可以根据现场工艺的要求在组态软件中实现