CIP驱动是罗克韦尔自动化公司的PLC设备的驱动,用户对象是设备管理和维护人员,需要进行读取和写入设备的操作。
设备组可以将设备进行分类,单个设备组中的设备是按照顺序以单线程的方式运行,如单个设备组中有部分设备运行故障,那么就会降低此设备组中正常设备的运行速度,所以用户在配置时,请确认各设备是否运行正常。而多个设备组之间是以多线程的并行的方式运行,设备组与设备组之间不会相互影响。用户可以根据现场情况进行分类,如运行快的设备放在一起、运行慢的设备放一起或者运行慢的和运行快的放在一起平衡速度。
注意:本驱动只支持AB-PLC中基本类型的数组(如INT,DINT,SINT,REAL,BOOL)和单个结构体中各属性的采集(如STRING类型中的string.LEN和string.DATA[0]),并对单个STRING类型的读取做过字符串处理。
但本驱动不支持结构体(包括自定义类型)数组(如string[2]中的string[1].LEN等)的采集。
因此若需要对结构体数组和复杂的结构体进行采集的场景,可使用CIPx驱动。
主要包含以下步骤:
首先,需要配置好相应的SCADA节点。要保证当前系统的所有scada节点中有一个scada节点是作为中央服务器存在的。我们新增一个scada节点,并选做中央权限服务器。双击scada节点下的驱动配置,如下图:
进入驱动配置页面,在页面的左上方,可以看到“添加驱动”的按钮,点击添加驱动,弹出可用驱动的选择对话框,如下图:
在可用驱动列表中,选择CIP驱动所对应的“CIPDriver”,然后点击确认。
选择签出CIPDriver,点击配置驱动,可以对驱动进行配置,如下图:
1.签出CIP驱动(CIPDriver),点击“驱动配置”按钮,进入CIP驱动配置界面,如下图:
2.在驱动配置界面上,右击CIPDriver,选择“添加设备组”,如下图:
3.在树控件列表的右侧显示选中的设备组的配置界面,可配置设备组名称和设备组描述。如下图
在驱动配置界面上,右键点击树控件列表中的设备组节点,选择“添加设备”菜单,在树控件列表的右侧显示新添加设备的配置界面,设备的名称自动生成,其他属性为默认值。
如果现场设备存在冗余,需要选中“备设备”复选框,然后填入备机的ip地址和端口号;除此之外,还需要配置各项参数,驱动配置工具中所列的默认配置参数为推荐的配置值,并非所有的设备均合适,如果通讯出现问题,需要调整配置参数,请咨询设备厂商。
参数配置的意义如下:
❖设备地址:设备的IP地址。
❖端口号:设备连接的端口号。
❖槽号:设备插入机架中的槽号。
❖响应超时:驱动向设备发送需要反馈的命令所等待的超时时间。
❖重试次数:发送超时后重送的次数。
CIP协议支持免配块方式,如选择此方式,配到“设备”即可,可跳过配置“数据块”的过程,直接进入“变量配置”步骤,详见:CIP变量配置。
1.在驱动配置界面上,右键点击树控件列表中的设备节点或数据块节点,弹出右键菜单,选择“添加数据块”菜单。
2.在CIP驱动的数据块配置中需要配置“是否连接数据块”、“设备地址”和“刷新周期”信息,当勾选“是否连续数据块”即数据块为连续块时,如下图:
❖数据块名称:必须是CIP上实际的数据块名;
❖连续数据块:数据块为连续块是指CIP中的一个块数组,如data[100],整块完整传递;
❖长度:元素的长度,如:数据块长度配置了4,那么包含DataBlock:0、DataBlock:1、DataBlock:2、DataBlock:3四个数据地址;
❖寄存器字节:元素的大小。
3.当不勾选“是否连续数据块”即数据块为离散块时,如下图:
此时,需要对数据块进行配置,可以增加离散的数据块并对其进行修改和删除,这里的离散数据块名称请参考实际设备。
❖数据块为离散块指数据块地址是不连续的,如1001、2012。
❖扫描周期:驱动读取设备的时间。
❖为了避免丢点现象,如果用户知道设备的数据变化周期,建议将驱动的刷新周期配置为设备的数据变化周期的一半,点的扫描周期配置为数据变化周期的4分之一,如果使用到转储功能,建议将转储数据属性中的扫描周期配置为数据变化周期的8分之一,如设备的数据变化周期为4000毫秒,那么驱动刷新周期为2000毫秒,点的扫描周期为1000毫秒,转储数据的扫描周期为500毫秒。
与驱动有关的变量配置项目主要有以下四项:
❖所属驱动:选择添加的变量来自何种驱动;
❖设备名称:选择添加的变量来自何设备,该设备名称应已配置完成;
❖设备地址:信号地址,地址格式在选择“配块”与“免配块”不同选择时,有不同的表达格式,具体请详见下面帮助内容;
❖数据类型:AI、AO类型数据有此选项,请根据PLC端传送的数据类型选择。具体详见:AI变量配置章节;
❖字节顺序:AI、AO类型数据有此选项,有些PLC关于模拟量数据有高低位翻转的通讯要求,可根据需要勾选并实现高低位换位。具体详见:AI变量配置章节;
添加变量详细说明参见新增变量 。
注意:配置完成后需要部署到scada节点,使得配置生效。
CIP驱动支持免配块方式,用户可以自行选择是否配置数据块的方式,两种方式只可二选一。通常建议采用免配块方式,此种方式工作量较小。
块内只有一个变量的设备地址格式:块名称, 例如:DataBlock0 ;
包含多个变量的数据块的设备地址格式:块名+“:”+块内下标,即“块名:n”,例如:DataBlock:2。若还有位偏移量时,即"块名:n:bitoffset" ,例如: DataBlock:2:3 ;
免块模式下,数据块的类型由变量类型决定,如下所示:
⟡PLC内AI类型变量可配置为AI块
⟡PLC内AO类型变量可配置为AO块
⟡PLC内DI类型变量可配置为DI块
⟡PLC内DO类型变量可配置为DO块
⟡PLC内TXT类型变量可配置为AI块
⟡PLC内BLOB类型变量可配置为AI块
⟡PLC内其余Tag点类型暂不涉及
CIP驱动块内元素长度最大到64位(如64位的双精度浮点型)。
CIP驱动免配块方式不支持字符串的数组,该类型需要换配块方式。(由于一个设备只支持配块或免配块方式2选1,此种情况,其他点也需要按配块方式操作。或者考虑单独为字符串的数组通讯另建一个设备连接。)
由于CIP数据块名称必须是PLC上实际存在的,自组块时同一个TAG点的设备地址不可以同时配置到AO和AI变量,或者同时配置到DI和DO变量中,只能建其一。
当前AB PLC大多选用符号地址方式编程,因而CIP协议免配块方式的设备地址格式为:
⟡模拟量符号地址变量的设备地址格式:
组名.变量名
⟡数字量符号地址变量的设备地址格式:
组名.变量名.位号
(组名若PLC侧没定义,可省略。)
根据CIP协议,变量设备地址也支持绝对地址的格式。其配置方式如下,其中{}为可选部分:
⟡YY@XX[N]{.bitnumr},其中YY表示AI变量的字节数,XX[N]表示取数组XX的第N个元素,bitnumber表示位偏移,取该元素的第几位。
例如:
变量名:1@cipint[0].2 含义:该变量cipint[0]是个8位数,且偏移2位;
变量名:2@cipint[1].4 含义:该变量cipint[1]是个16位数,且偏移4位;
变量名:4@cipint[2].3 含义:该变量cipint[2]是个32位数,且偏移3位;
如果前面不加YY@,即变量名格式为XX[N]{.bitnumr}时,默认YY=4,即是个32位数;
⟡XX.DATA#ByteLen,特指字符串,详细规则如下:
●字符串通过字符取值后合并(长度和DATA分别获取),获取字符串内容用"XX.DATA#len",len为读取长度,如不配,len默认长度为1;获取字符串长度用"XX.LEN"
●写字符串时需要每个字节分别写,即将字符串每个要写的字符置成一个AI或AO的变量
⟡XX{.bitnumr} ,如有 bitnumr,则视为是点XX的bitnumr位。
多元素的连续数组内部的元素类型和长度都必须一致。
将驱动程序日志文件等级修改为“DEBUG”,可以查看通讯过程及详细错误信息。日志操作方法详见:调试及小工具>日志
CIP驱动 Invalid Status错误码: