HK-CIFX PC板卡在Linux环境下的驱动安装及通讯配置操作指南

HK-CIFX是一款基于PC的协议板卡,用于为PC扩展各类现场总线与工业以太网协议接口。其扩展接口多样,包括PCI,PCIe,MiniPCIe,M.2.,PC/104,PCI104,CPCI等。支持的现场总线与工业以太网协议众多,包含PROFIBUS,PROFINET,CANopen,EtherCAT,DeviceNet,EtherNet/IP,CC-Link,CC-Link IE Field Basic,Modbus,POWERLINK等。本篇文章旨在举例说明如何在Linux环境下安装驱动并进行通讯配置操作。
  1. 应用简介

本文档的用意在于让初次接触HK/CIFX PC板卡的使用者了解该板卡在Linux系统中驱动的安装,配置,调试,以及二次开发包的使用。通过该文档的引导,使用者可以让HK/CIFX PC板卡在Linux环境下正常运行起来,并与其它设备或PLC进行基本的通信测试。Linux下,CIFX Linux驱动作为一个库在用户空间运行,并通过IO内核模块访问该板卡(用户空间I/O)。HK/CIFX PC板卡可作为工业实时以太网或现场总线协议的主站或从站,如Profinet主从站,Ethernet/IP主从站,EtherCAT主从站,详细的介绍请查看板卡的简介资料与说明手册。

  1. Linux驱动安装

2.1 环境要求

Linux组件更新

安装驱动之前,根据 HK/CIFX PC板卡在Linux系统下运行环境的基本要求,因此建议先更新和安装必要的功能组件,主要是安装下libpciaccess(PCI板卡)标准库以及pkg-config工具,在Linux系统联网情况下,可通过sudo apt-get 命令更新。

2.3 解压驱动包

复制驱动压缩包到Linux操作系统环境中,通过tar -zxvf命令解压CIFX PC板卡Linux驱动压缩包,便于演示,这里重新命名为project,注意解压路径中不要包含空格。解压后文件中包含/driver和/examples文件中,分别包含CIFX PC板卡驱动以及板卡程序示例。

 

2.4 安装驱动

1、进入驱动文件夹/home/project/driver,执行驱动安装脚本build_install_driver,根据安装过程中出现的提示选择必要的操作,驱动正确安装打印消息最后会提示“cifx driver successfully installed”。如果驱动安装过程中出现报错“configure:error:libpciaccess not found via pkg-config,or wrong version!”,那么参考Linux组件更新一节说明,安装必要的组件。

2、驱动正确安装后,可以查看到通过驱动安装脚本创建的/opt/cifx文件中,其中包括板卡boot loader文件,device.conf配置文件以及设备识别所需的文件树结构(以下示例中为:Device identification via single directory方式文件树结构)。另外在用户本地库目录中可以查看到已安装的libcifx相关的库文件,头文件在/usr/local/include/cifx中。

3、通常情况下驱动安装后uio_netx需要手动再安装(modprobe uio_netx),为避免反复操作,建议将uio_netx添加到Linux模块自启动内,可以直接在/etc目录下modules文件中添加uio_netx。以及例程编译后执行时时可能出现无法链接到libcifx库的情况,可通过ldconfig在库目录下注册库并创建链接。

以上操作完成。重启Linux系统可使得修改的配置生效。驱动正确安装与配置后,CIFX PC板卡可在Linux下使用。

  1.  板卡配置与通讯测试

3.1板卡配置

HK/CIFX PC板卡主要应用是可作为工业实时以太网或现场总线协议的主站或从站,如Profinet主从站,Ethernet/IP主从站,EtherCAT主从站。HK/CIFX PC板卡可通过加载不同的协议固件,使得板卡可以充当相应的主从站,对于cifX设备,固件及其配置文件不存储在硬件上,因此还需要给Linux环境中提供必要的文件,工控机每次上电时会将boot loader、firmware、configuration file加载到硬件板卡中。

1、创建特定的文件结构

为了允许特定设备的配置,板卡识别,固件需要被存储在主机上的特定文件夹结构中,以建立板卡和固件之间的唯一关系。默认情况下,所有相关的文件位于”/opt/cifx”目录中。驱动程序支持如下四种不同类型的板卡的配置,每一种都有其特定的文件夹结构。

n slotnumber (depends on the hardware, requires slotnumber switch on the hardware)

n device and serial number

n card name

n single directory

一种比较简单的设置配置文件存储的方式是通过位于驱动/driver/scripts/中的安装脚本install_firmware来创建相应的文件结构。

本文章示例中采用single directory实现文件存储,建立板卡与固件之间关系,实现设备识别与固件下载。默认执行cifx板卡驱动安装脚本后,所创建好的文件目录与single directory方式一致,因此如果采用此方式可省略此步。

2、板卡组态配置

在Windows系统中安装板卡配置软件SYCON.net,在SYCON.net中对板卡参数进行网络组态,如输入输出数据量、通讯周期、IP地址等,并将通讯正常的配置保存,具体配置可参考相关案例。从SYCON.net导出.nxd格式的数据库文件或者从Windows板卡默认配置文件存储目录中拷贝出来(通常建议后者)。并将.nxd数据库文件和.nxf协议栈固件文件拷贝到Linux设备配置目录中,single directory方式保存/opt/cifx/deviceconfig/FW/channel0中。

需要重启工控机才能使得固件和配置加载到cifx板卡。

3.2 通讯测试

本文章以HK/CIFX PC板卡作为PROFINET从站为例:首先在西门子PLC博途软件中进行PROFINET的网络组态与配置,注意cifx板卡所添加的输入输出模块与SYCON.net软件中配置的一致,并下载给PLC,建立PLC与cifx板卡之间的PROFINET链接。

然后在Linux环境下运行程序,这里是以运行examples中cifXTestConsole为例,进入文件夹/examples/cifXTestConsole,先执行configure脚本(./configure),再make编译程序,最后执行生成的cifXTestConsole(./ cifXTestConsole),执行程序后可以查看到板卡基本信息。

执行cifXTestConsole例程中IO数据交互,可实现与PLC之间的周期性数据收发。

更多推荐