基于VC的Profibus-DP通信系统的设计与实现

2010-07-13 06:01朱百通孟晓风李晋阳董登峰
电子设计工程 2010年2期
关键词:主站网卡调用

朱百通,孟晓风,李晋阳,董登峰

(北京航空航天大学 仪器科学与光电工程学院,北京 100191)

Profibus是一种国际现场总线标准,其中Profibus-DP部分广泛应用于自动化领域[1],由西门子公司的此类产品构建的Profibus-DP网络(以下简称DP网络),除硬件节点(如S7-300)外,还需购买该公司的监控和组态软件(如WinCC)。大中型系统中,WinCC等软件不能满足系统监视和数据处理方面的特异化需要,另外,购买软件也提高系统开发成本。基于上述原因,本文提出一种基于VC的Profibus-DP通信系统的设计方案。

1 系统构成

DP网络存在一个或多个DP主站。主站间的通信通过建立逻辑令牌环实现。主站按照总线地址升序组成一个逻辑令牌环,控制令牌按此顺序从一个站传递至另一个站,拥有令牌的主站控制总线通信。

Profibus-DP典型系统配置是单主站结构,总线包含一个一类DP主站和多个DP从站。主站和从站的通信基于主—从原理,仅当主站请求时从站才可活动,主站根据轮询表依次访问从站[2]。系统采用配备Profibus网卡CP5611的PC做一类主站,监控站和一类主站一体化。2个组态CPU314C-2DP的S7-300 PLC作为智能从站,S7-300同时组态输入输出模块,2个MM440变频器也作为DP网络上的智能从站组态。系统网络结构如图1所示。

图1 系统网络结构

2 系统搭建

2.1 网络设置

与单片机+通信器件为智能从站相比,以S7-300和MM440为智能从站[3]具有更高的可靠性和稳定性,无需编写下位机通信程序,更易扩展,可根据不同信号需求替换S7-300中相应模块即可实现。

从站配置需硬件组态S7-300,在Step7软件中配置模块信息后下载到S7-300中。主站配置需在Step7中建立PC站,向其添加CP5611网卡,然后配置网络,DP网络要求节点具有不同网络地址。本系统采用主从通信,首先在Step7工具HW Config 中配置 CP5611,添加“Master PROFIBUS-DP bus”,设置CP5611的网络地址,通信协议选择DP,其通信速率为1.5 MB/s。将智能从站依次添加到网络上,均设置为DP-slave,并分配不同地址。通信协议和通信速率设置与其一致。

2.2 通信过程

系统通信分为PC机上的DP应用程序与网卡CP5611的通信以及网卡CP5611与智能从站的通信两个过程[4]。

1)DP程序调用CP5611的驱动函数,访问CP5611的数据区。如图2所示,对于每一DP从站,主站包括输入数据、输出数据和诊断数据3个数据区,这些数据形成CP5611和DP应用程序间的接口,通过访问这些区域,DP程序读取从站输入信息,向从站发送信息,读取从站的诊断信息,程序运行过程中,数据区域不断更新。

图2 主站数据区结构

2)CP5611同从站通信,采用PLC和MM440作智能从站,需定义从站的通信数据接口区。配置Step7软件中配置工具,选择输入/输出区地址,设置通信数据区的大小、单位、发送方式等。通信过程中,DP程序指定从站,调用函数,CP5611自动在从站设置区域读写数据。

2.3 上位机通信程序设计

程序设计原理如图3所示,Windows下的 DP应用程序调用网卡的动态链接库函数,库函数和CP网卡进行数据交换,CP网卡连接到Profibus总线,从总线上读取或向总线发送数据。

DP程序由VC++6.0开发,需CP5611驱动程序提供的User_DP.h和DPnlib.lib 2个文件,应在VC的工程中添加对这2个文件的引用。典型DP程序包含初始化,工作和关闭3个阶段。每一阶段都有首先调用的函数,这些函数保证程序正常运行和使用其他函数,如图4所示。

图3 通信程序原理

图4 通信程序结构

1)初始化阶段 首先调用dpn_init()函数,可选函数有dpn_read_bus_par (),dpn_load_bus_par (),dpn_read_cfg (),dpn_read_slv_par(),dpn_set_slv_state ()等,这些函数完成读取总线和从站状态及相应配置功能。

2)工作阶段 首先需要调用 dpn_set_mode()函数,可选的函数有以下几个:dpn_in_slv (),dpn_in_slv_m (),dpn_out_slv(),dpn_out_slv_m()等,这些函数读写指定的智能从站,具体实现通信。

3)关闭阶段 退出程序前,应调用dpn_reset()函数。

2.4 通信程序实例

以下给出的通信程序实例包含初始化、读从站数据、写从站数据等程序[5-6]。初始化程序选择板卡,将各从站地址对应的user_data项设置读写权限,并调用初始化函数,向从站发送初始化信息。读取程序,传入从站地址,设置读取数据长度为256,调用读取函数后返回实际读取数据长度。写从站程序,先指定从站地址,并设置数据长度,将数据写入user_data数组后调用发送函数。

1)初始化程序

3 结论

本文使用VC++编写DP通信程序,通过调用网卡CP5611驱动函数,读写配置网络上节点,实现了以PC机作为主站,以S7-300系类PLC和MM440作为智能从站的Profibus-DP主从通信系统,改变了一般情况下组建Profibus-DP网络需要使用WinCC等组态软件的情况,在WinCC不能满足某些大中型系统需求的灵活性和特异性时,为系统定制自己的软件提供通信的基础,同时降低成本,并且已应用于大气综合计量检定系统。

[1]王文磊,徐汀荣.PLC和PC基于工业以太网通信研究与实现[J].控制系统,2006,22(5-1):43-45.

[2]郑小倩,黄明琪.基于Profibus-DP通信研究与实现[J].计算机测量与控制,2007,15(5):695-697.

[3]Siemens.MM440与S7-300通过DP通讯实现读取和修改参数例程[EB/OL].2009.http://www2.ad.siemens.com.cn/download/Upload/AS/application/A0279.pdf.

[4]Siemens.通过Profibus-DP实现带集成DP接口CPU之间的主从通信[EB/OL].2008.http://www.ad.siemens.com.cn/Down load/Upload/AS/application/A0131.pdf.

[5]Weigman J.西门子 PROFIBUS工业通信指南[M].2版.北京:人民邮电出版社,2007.

[6]李正军.现场总线与工业以太网及其应用系统设计[M].北京:人民邮电出版社,2006.

猜你喜欢
主站网卡调用
核电项目物项调用管理的应用研究
Server 2016网卡组合模式
LabWindows/CVI下基于ActiveX技术的Excel调用
EtherCAT主站与主站通信协议的研究与实现*
多表远程集抄主站系统
基于系统调用的恶意软件检测技术研究
挑战Killer网卡Realtek网游专用Dragon网卡
基于改进经济压差算法的主站AVC的研究
关口电能计量故障监测报警装置及主站研究
RHEL7 Network Teaming(网卡绑定)配置与测试