基于PROFIBUS-DP主站现场总线的协议转换装置的协议转换方法
技术领域
本发明涉及一种总站现场总线,属于通信技术领域。
背景技术
随着计算机技术、通信技术和控制技术的飞速发展,工控领域也不断产生先进的控制模式,现场总线就是顺应这一形势发展起来的新技术,其中的PROFIBUS总线是一种完整的、国际化的、开放的、不依赖生产厂家现场总线标准。PROFIBUS-DP用于设备级的高速数据传送,通信控制器(如本文提到的C101)通过高速串行线同分散的现场设备(如PLC、I/O等)进行通信。PROFIBUS-DP在用于现场层的高速数据传送时,通信控制器主站周期地读取从设备的输入信息并周期地向子站设备发送输出信息。除周期性数据传输外,PROFIBUS-DP还提供了智能化设备所需要的非周期性通讯以进行组态、诊断和报警处理。由于PROFIBUS-DP具有快速(数据传输速率9.6Kbps/s~12Mbps)、即插即用、高效低成本、分布式、易于安装等诸多优点,所以,在各种工业过程控制中得到了广泛的应用。对于作为DP主站的上位机在国内目前主要由四种解决方案:
1)购买西门子的PROFIBUS-DP主站通信接口卡,该通信方式主要使用在基于WINDOWS平台的工控机接口集成中,其开放难度不大,但主站的软件费用及其硬件卡十分昂贵。
2)购买国外其他厂家的生产的PROFIBUS-DP主站通信接口卡,其集成方式一般基于PC/104、PCI等接口方式,需要进行二次开发,其开发难度一般,主要适用于基于实时操作***的嵌入式控制器的接口集成中;
3)在直流保护侧添加一台西门子的S7 300作为接口通信的网关,把PROFIBUS-DP协议转换为通用以太网接口的TCP/IP协议与上位机进行通信。其对上位机来讲集成实现非常简单,但是其增加的费用使得整个接口集成的费用并没有降低,而且其国产化率也会降低,因为,目前国内的变电所自动化***的技术已经实现了完全的国产化。
4)根据PROFIBUS协议进行自己研发,也就是本文提供的方案,其国产化率将会进一步提高,并大大降低自动化***接口集成的费用,并且对于后期的维修和备品备件的采购也带来了极大的便利。
PROFIBUS-DP主站开发的难点主要表现在:首先,PROFIBUS-DP的物理层数据码流采用的是通用RS485串行通讯接口,理论上,即只要带有RS485串行接口的通信处理器就可以作为DP的主站进行PROFIBUS子站的接口集成。但实际上,由于一方面,对于PROFIBUS的通信速率要求较高,一般不低于187.5Kbps,另一方面,PROFIBUS协议对通信的时序及其实时性也要求较高,所以,必须采用专用的CPU处理器来完成这一功能,为保证通信实时性,一般均需要采用双口RAM(也可采用共享内存方式,但加大技术的实现难度,且对产品的成本降低并不大)来进行通信;其次,目前在国内,在PROFIBUS的研发方面一直处于空白,一方面,PROFIBUS规范近一千页,而且中文译本翻译的并不是很好(不管是EN50170还是IEC 51158),没有很好的英文功底是很难吃透PROFIBUS规范的;最后,PROFIBUS-DP规范在国内用的地方非常多,但是,对于具体的项目,几乎均采用西门子的整套集成方案,而这一套方案对国内的技术工程师来讲就是学会熟练使用西门子的PROFIBUS组态配置工具,并其下载到现场的具体应用项目中就可以了,西门子的PROFIBUS-DP总线可以说对国内的技术人员是完全透明的,在这一层次,是无法掌握任何PROFIBUS底层技术的。
发明内容
本发明所要解决的技术问题是提供一种PROFIBUS-DP主站现场总线的协议转换装置,数据传输速度快、***实现简单、可靠性高、性价比高。
为解决上述技术问题,本发明提供一种基于PROFIBUS-DP主站现场总线的协议转换装置的协议转换方法,协议转换装置包括依次相连的C101-CPU模件、C101-PFB模件、C101-DB模件,C101-PFB模件、C101-CPU模件、C101-DB模件之间通过256k字节高速共享内存交换数据,所述C101-PFB模件通过RS485与HFB2模件相通信,HFB2模件通过PROFIBUS-DP现场总线与各子站相通信,
所述C101-CPU模件用于接受上位机控制命令,并通过双口RAM发送至C101-PFB模件;接受上位机查询现场,获得C101-PFB模件中子站设备实时数据信息,并与上位机进行通信;把组态文件发送给C101-PFB模件,以PROFIBUS-DP现场网络进行组态;
所述C101-PFB模件用于接收从双口RAM获得的从C101-CPU模件发来的控制命令,并通过PROFIBUS-DP协议发给相应子站;从现场采集子站实时数据放到双口RAM中供C101-CPU模件采集;接收C101-CPU模件提供的组态文件,配置现场实际的子站,进行PROFIBUS-DP协议的解析;
所述C101-DB模件用于提供标准的PC/104总线插槽供以连接C101-PFB模件和C101-CPU模件;
所述HFB2模件用于实现PROFIBUS-DP现场总线的电口转化为光口,即可把C101-PFB模件的PROFIBUS-DP电口转换为光口,以保证远距离的可靠通信,
其特征在于:包括以下步骤:
1)上电后,C101-PFB模件首先检查组态文件的正确,并在以后时间,定时检测组态是否有更新;
2)如果组态文件检测通过,根据装置中配置好的组态文件,配置PROFIBUS主站地址、PROFIBUS网络通信速率;
3)检测网络是否存在其他主站,如存在,等待令牌,如不存在,在超时等待(如6秒钟,网络无任何数据产生)后,假定网络自己为唯一的主站,生成令牌,并持有该令牌;
4)如果协议转换装置持有令牌,DSP处理器在令牌持有时间到达之前,根据组态文件,对组态的每一个子站依次进行诊断、参数化配置、组态配置和诊断确认;
5)如果对组态中的一个子站依次通过诊断、参数化配置、组态配置和诊断确认交互之后,就会进入数据交换,其数据交换将会一直保持,直至新的组态产生或该子站故障退出数据交换;
6)C101-PFB模件与子站进行数据交换的过程为:C101-PFB模件处理从双口RAM获得输出数据,发送给子站,并从子站获得子站的输入数据保存到对应的双口RAM中去;
7)在主站持有令牌时间到达后,将发出令牌给其他主站,如无其他主站,等待超时后,该主站将继续组态内子站的数据交互。
前述的基于PROFIBUS-DP主站现场总线的协议转换装置,其特征在于,所述C101-CPU模件为嵌入式CPU处理器,所述C101-PFB模件采用遵循EN50170标准的32位嵌入式CPU处理器。
前述的基于PROFIBUS-DP主站现场总线的协议转换装置,其特征在于:所述C101-CPU模件通过CAN现场总线或以太网或串行口方式与上位机进行集成通讯。
前述的基于PROFIBUS-DP主站现场总线的协议转换装置,其特征在于:C101-PFB模件通过双口RAM与C101-CPU模件进行通信,两者之间的接口为PC/104接口,C101-CPU模件通过双口RAM来实现与C101-PFB模件的正常通信,同时通过该双口RAM来实现PROFIBUS-DP组态的上传与下载;C101-PFB模件通过双口RAM来获取PROFIBUS子站的数据并通过双口RAM来实现对子站的实时控制。
前述的基于PROFIBUS-DP主站现场总线的协议转换装置,其特征在于:所述组态功能在C101-PFB模件中进行,组态方法为:
1)根据实际项目需求,更新PROFIBUS子站的GSD文件;
2)添加主站,配置主站参数文件,包括通信速率,主站站地址等;
3)添加子站,配置子站参数文件,包括站地址,输入数据长度、输出数据长度等;
4)配置完毕后,导出组态文件,生成组态配置文件,把组态文件通过网络口连接到协议转换装置下载到协议装换装置,即可实现对现场PROFIBUS网络的组态配置。
此外,也可以通过手工方式编写PROFIBUS组态文件,这需要很强的PROFIBUS-DP技术知识。
根据权利要求1所述的基于DSP处理器的C101-PFB模件的PROFIBUSDP主站现场总线的协议转换装置的集成通信方法,其特征在于:包括以下步骤:
1)上电后,协议转换装置C101-CPU模件下载配置好的组态文件到双口RAM供DSP处理器配置PROFIBUS网络;
2)C101-CPU模件根据组态文件配置协议转换装置数据库和双口RAM;
3)C101-PFB模件从双口RAM中获得子站的输入和输出数据,并与协议转换装置数据库进行比较,以检测是否需要更新协议转换装置数据库;
4)数据采集:协议转换装置上位机根据实际需求通过CAN网协议、DNP3.0协议、IEC60875-5-104网络规约,标准MOUDBUS TCP/IP或标准MOUDBUSRTU协议对协议转换装置进行数据采集,协议转换装置将当前数据库的实时数据上送给协议转换装置上位机;
5)对现场设备的实时控制::协议转换装置上位机根据实际需求通过CAN网协议、DNP3.0协议、IEC60875-5-104网络规约,标准MOUDBUS TCP/IP或标准MOUDBUS RTU协议对协议转换装置进行实时控制,协议转换装置接收控制命令并更新实时数据库和双口RAM的输出数据,DSP处理从双口RAM的输出数据获得控制命令并下发给PROFIBUS子站,从而完成对现场设备的实时控制功能。
本发明所达到的有益效果:
本发明采用DSP软件解析PROFIBUS-DP协议+高速RS-485通用异步串行接口+PROFIBUS-DP组态文件配置PROFIBUS-DP通信网络方式,来代替专有芯片+固件方式,从而大大降低PROFIBUS-DP主站的开发成本,其软件的实现方案对外公开,现有技术主要采用的是专有芯片硬件来实现PROFIBUS-DP底层的协议栈,并且这些协议栈均为商业机密固件,不公开;
本发明对PROFIBUS-DP主站的组态配置文件即可采用手工组态,也可采用软件的方式进行PROFIBUS的网络组态,并具备进行在线下载功能;
本发明简化了PROFIBUS-DP底层开发:揭示了PROFIBUS-DP完成正常通信时所需要的必不可少的组态参数和这些参数之间的关联及其PROFIBUS主站完成正常通信的最基本的步骤和方法,直接对PROFIBUS数据链路层的数据进行协议分析,从而比以往的通信方案的通信效率更高,即满足PROFIBUS-DP主站协议的正常通信要求,又比较切合实际,即高效,节约成本,实现技术难度低,而且更有利于PROFIBUS-DP协议在国内更好的被推广。
本发明协议转换装置通过CAN现场总线或以太网或串行口方式与上位机进行集成通讯,通信协议上选择也十分灵活,可以选择国电南瑞的CAN网络通信协议3.01,国际标准DNP3.0,IEC60875-5-104网络规约,标准MOUDBUS TCP/IP或标准MOUDBUS RTU。对于二次开发人员来讲,无PROFIBUS技术开发要求,即可实现PROFIBUS-DP子站网络的集成。
附图说明
图1PROFIBUS-DP主站硬件开发原理图。
图2PROFIBUS-DP实现原理图。
图3C101通信控制器在轨道交通直流牵引的典型应用连接图。
具体实施方式
图1给出的是基于PROFIBUS-DP主站的C101通信控制器的硬件原理框图。C101通信控制器是基于PC/104的PROFIBUS-DP主站接口装置,它是国电南瑞系列通信控制器的重要组成部分,提供了轨道交通PROFIBUS-DP接口的完全解决方案,遵循EN 50170标准。它将PROFIBUS协议转换成与总控通信的CAN2.0B协议。它既可以作为DP主站,又可以作为DP子站。它广泛支持PROFIBUS-DP标准的各种传输速率,最多可以连接126个PROFIBUS子站。该装置主要由3块模件组成:C101-PFB,C101-CPU,C101-DB。前二者均为智能板,它们之间通过256K字节高速共享内存交换数据。C101-DB板实现了与总控C306完全隔离的双CAN网,PC104时钟后备电池,硬件对时电路,大规模可编程逻辑CPLD组成,可靠性高;C101-CPU板采用的是强大的嵌入式CPU处理器,保证了装置的实时性和稳定性;C101-PFB板采用32位嵌入式专用CPU处理器,遵循EN50170标,PROFIBUS-DP的对外接口完全隔离,抗干扰能力强。
C101-CPU模件可采用德州仪器的TMS320F2812,其所带RS485串口速率最高可达9.375Mbps,在具体的实际应用中可以满足:3Mbps、1.5Mbps、500Kbps、187.5Kbps、93.75Kbps、19.2Kbps、9.6Kbps等各种PROFIBUS-DP主站速率的要求。
成本控制上,如果是进行的硬件级集成,如采用PC/104接口进行双口RAM的接口集成,其通信DP主站的接口卡成本目前不高于1500元人民币,而对于DP的主站协议转换为上位机私有的协议,其物理层如果为串口、以太网、CAN等时,其成本也不高于3000元人民币,对于国内的接口集成商来说是完全可以接受的。且不会增加任何软件的费用。
C101通信控制器的PROFIBUS-DP主站实现原理
对于一个PROFIBUS-DP主站的数据链路层有10个FDL状态,其状态间转换。如图2所示。
1 Offline状态
在通电后或某种错误情况被发现后,PROFIBUS主站***将立即进入“Offline”状态。在通电后,每个站执行自检验。这种内部自检验依赖于自身的检验工具,不影响其他的站,正因如此,自检过程在PROFIBUS规范中不作规定。
在通电过程完成后,FDL保留在“Offline”状态直到所有需要的运行参数已被初始化为止。然后FDL只与传输介质连接,但自身没有传输。
2 Listen_Token状态
在它的运行参数初始化后,如果它已准备好进入逻辑令牌环的话,此主站的FDL将进入“Listen_Token”状态。在此状态下,为了辨别已经在逻辑令牌环中的主站,此主站的FDL将监视着总线。为了这样的目的,将分析令牌帧,并且用包含在令牌帧中的站地址产生主动站表(LAS)。在监听了两个完整相同的令牌轮转后,FDL将保留在“Listen_Token”状态直到它的前者(PS)传送的“Request FDL Status”寻址到它为止。此时它将用“准备进入逻辑令牌环”作回答,并且在接收寻址它的下一个令牌帧时,它将进入“Active_Idle”状态。在LAS生成期间,对任何“Request FDL Status”不予应答或用“未准备好”回答。在“Listen_Token”状态下,所有其他帧均不予处理,即它们既不应答也不回答。
在登记主站时,如果FDL检查出它自己的地址被作为两个令牌帧中的源地址(SA),则它认为具有相同地址的另一个主站已经存在于逻辑令牌环中,然后FDL将重新进入“Offline”状态并向管理层报告此事件。
如果在整个TTO期限内FDL发现无总线活动,则此主站的FDL将认为逻辑令牌环的重初始化或重建是必要的。此FDL试图申请令牌并重初始化逻辑令牌环。
3 Active_Idle状态
一旦离开“Listen_Token”状态,此主站的FDL将进入“Active_Idle”状态,并监听着总线但无活动。如果它接收到一个寻址它自己的近乎可取的主动帧,需要时它将应答或回答。在接收到一个寻址它自己的令牌帧后,如果此主站想保留在逻辑令牌环中的话,它将进入“Use_Token”状态,否则它重新进入“Listen_Token”状态。如果在连续接收的两个令牌帧中SA=TS,即出现错误,也进入“Listen_Token”状态。
如果此FDL发现它不是主动地被从逻辑令牌环中去掉,它将进入“Listen_Token”状态并将此情况报告给管理层。如果此FDL发现在超时时间期间无总线活动,它将认为必须恢复逻辑令牌环。此FDL试图申请令牌并重新初始化逻辑令牌环(“Claim_Token”状态)。
4 Claim_Token状态
在“Active_Idle”状态后,FDL将进入“Claim_Token”状态,当它的TT0时间期满时,则进入“Listen_Token”状态。在“Claim_Token”状态下,它将重新初始化逻辑令牌环或开始初始化。当重初始化时,站状态表(LAS和GAPL)仍然是有效的,则立即进入“Use_Token”状态。
当初始化时,最初的令牌将对自己的FDL寻址两次,即NS=TS,也就是说在“Pass_Token”状态。为了在其他主站的LAS中产生一个登入项,这样做是必要的。令牌传输后,将在“Await_Status_Response”状态中用“Request FDLStatus”请求后续站地址的方式建立自己的GAPL和NS。
5 Use_Token状态
在接收一个令牌后或重初始化后,FDL将进入“Use_Token”状态。在此状态中FDL可以执行高优先权和低优先权报文循环。在进入此状态时,将从令牌轮转计时器中读出TRR(实际轮转时间),且此计时器将重新开始。总是允许一个高优先权报文循环。以后的高优先权或低优先权报文循环,或一般低优先权报文循环的执行,只有在执行的瞬间TRR<TTR(目标轮转时间)时才可以。
每次传输主动帧后,FDL将进入“Await_Data_Response”状态并起动时隙计时器。前面传输的帧一旦被用户确认,它就返回到“Use_Token”状态。如果在“Use_Token”状态开始时无高优先权报文循环被执行,或者在一个高优先权或低优先权报文循环完成后,FDL将进入“Check_Access_Time”状态。
6 Await_Data_Response状态
在传输一个主动帧之后,FDL进入此状态。FDL为了接收应答或回答帧而等待一个时隙时间。在SDN服务(没有应答要求的发送数据)的情况下,不等待应答。此时,为了处理可能的后继请求,FDL重进入“Use_Token”状态。
在接收并处理了一个应答帧或回答帧后,FDL将再进入“Use_Token”状态,以便处理可能的后继服务请求。其他有效帧的接收表明产生了一个错误。则FDL将进入“Active_Idle”状态,并丢弃所接收的帧。
如果接收到一个无效的帧或时隙时间期满,则FDL将重试主动帧的传输。如果在重试多次之后,接收到无效的应答或回答,则FDL通知相应的用户并再进入“Use_Token”状态。在出错的情况下,对此站的后继请求不再重复,直到执行一个正确的报文循环为止。
7 Check_Access_Time状态
在此状态下,用计算差TTR-TRR的方法来计算有效的令牌持有时间。只有在仍然有有效的令牌持有时间时,FDL才可以进入“Use_Token”状态,否则FDL将进入“Pass_Token”状态。
8 Pass_Token状态
在“Pass_Token”状态下,FDL将试图传送令牌给逻辑令牌环中的下一个站(NS)。当GAP更新时间已经期满,但仍有可用的令牌帧持有时间时,在传送令牌之前,如有必要FDL将试图记录一个可能的新站在GAP中,以便将它包括在逻辑令牌环中。为此目的,FDL传输一个“Request FDL Status”并进入“Await_Status_Response”状态。然后,如果一个新主站的应答是它要求包括在逻辑令牌环中,则FDL将传送令牌给此站。在令牌被成功地传送后,则它自身的GAP将缩短到这个新主站。
如果状态请求的回答是一个新的子站或不要求进入逻辑令牌环的主站,则该站被登入GAPL。如果一个现存的站不回答,甚至在重试后仍不回答,则此站将被从GAPL中删除,即标记它为未使用的地址。
如果在GAP维护期间没有新的主站回答,则FDL将传送令牌给它的初始的NS并进入“Check_Token_Pass”状态。仅当知道无后继者,即在此刻FDL是总线上唯一活动的站时,它将传送令牌给它自己,然后再进入“Use_Token”状态。
9 Check_Token_Pass状态
在“Check_Token_Pass”状态下,FDL为了等待它已经传送令牌给它的那个站的响应而等待一个时隙时间,这个等待时间用于令牌帧接收之间的延时和确保传输被寻址站的响应。
如果FDL在时隙时间内发现一个有效帧首,则FDL认为令牌传送是成功的。将处理此帧,如同它在“Active_Idle”状态中被接收一样,即FDL将进入此状态。如果在时隙时间内发现一个无效的帧,则FDL认为另一个站是活动的,因此进入“Active_Idle”状态。如果在一个时隙时间内FDL未接收到任何帧,则FDL将再进入“Pass_Token”状态。
10 Await_Status_Response状态
在初始化或GAP维护期间指出无后继者后,FDL从“Pass_Token”状态进入此状态。在此状态下,FDL为了获得一个应答帧而等待一个时隙时间。如果无任何帧被接收或接收了一个有缺陷的帧,则FDL进入“Pass_Token”状态,以便重复请求或者传送令牌给它自己或它的后继者。如果FDL接收到任何其他帧而不是应答帧,表明可能有多个令牌存在,则FDL进入“Active_Idle”状态。
作为C101通信控制器的典型应用,如图3所示,在轨道交通牵引降压混合变电所中,直流开关柜综合测控保护单元与南瑞的RT21-SAS***的通信接口采用就是PROFIBUS-DP规约与C101通信控制器进行连接,C101通信控制器提供一路PROFIBUS-DP光纤接口与750V直流开关柜直流保护测控单元DPU96和直流开关柜内的PLC相连。实现PROFIBUS-DP信息的接入。
轨道交通变电所综合自动化***接入直流牵引***的PROFIBUS-DP规约的现场设备主要有:1)DPU 96:西门子公司生产的数字式保护测控一体化装置,放置于750V直流馈线柜中,主要功能对现场750V直流馈线柜的断路器、手车等具体一次直流设备进行保护、监视、控制功能;2)S7-300、S7-200系列PLC:西门子系列PLC,可编程控制器,S7-300主要用于直流进线柜(每个牵引降压所两台)和直流负极柜的断路器、电隔的监控,各种现场实时数据的采集功能(如进行电流、电压等)。S7-200主要用于750V直流馈线柜的旁路隔离开关和上网隔离开关的监控、数据采集等功能;
整体上,所有的现场PROFIBUS-DP通信设备均使用PROFIBUS-DP规约接入本发明的C101通信控制器,C101通信控制器主要目的就是利用PROFIBUS-DP通信规约采集底层现场设备的数据,并通过双CAN现场总线规约送往PSCADA总控***C306,另外,C101通信控制器还将接受C306的各种控制、查询命令,对底层PROFIBUS-DP现场设备进行实时监控,从而满足了轨道交通直流测控的保护的实时数据采集、监控、继电保护等各种功能。
PROFIBUS-DP的应用,首先必须进行严格的组态,使主站与子站的数据严格一致,考虑到使用者大多熟悉SIEMENS公司提供的通用组态软件COM PROFIBUS,应用软件使用的数据文件格式和用COM PROFIBUS生成的数据文件格式完全相同。通过RS232调试口,还可以随时观察组态数据文件的参数,以确认组态的正确性。此外,也可以通过南瑞的C101Config组态软件对C101通信控制器进行PROFIBUS现场网络的通信配置,且使用非常友好简单。
本发明的基于PROFIBUS-DP国产化主站的C101通信控制器,用一根双绞线连接主站及子站,若要扩展DP子站,只需将总线延伸,加入其他子站设备,不再增加布线的工作量和费用,***扩展非常快捷。C101设备控制器同时对***提供了强大的诊断工具,可用于检查和定位PROFIBUS-DP网络中主站、子站的错误,这些诊断功能可用作调试、监控功能,实现了PROFIBUS-DP现场总线分布式控制,大大的降低了PROFIBUS-DP主站接口的集成成本,由于C101通信控制器的PROFIBUS-DP主站协议装置具有数据传输速度快、***实现简单、可靠性高、性价比高等优点,必将在工业自动化***中得到广泛的应用。
以上已以较佳实施例公开了本发明,然其并非用以限制本发明,凡采用等同替换或者等效变换方式所获得的技术方案,均落在本发明的保护范围之内。