一种通讯配置数据自动解析的方法与流程

文档序号:12491331阅读:285来源:国知局
一种通讯配置数据自动解析的方法与流程

本发明涉及工业通讯的应用技术领域,尤其是一种PROFIBUS DP从站通讯配置数据自动解析的方法。



背景技术:

随着现代工业的不断发展, 对生产过程的控制提出了更高的要求。而现场总线正是促使自动化系统与仪表顺应这一发展方向的重要技术。在现有的各种现场总线标准中, 开放式 PROFIBUS DP作为现场总线标准之一, 占有很大的市场份额, 并呈逐年增加的趋势。鉴于此,如何为工业设备开发一个PROFIBUS DP的通信接口, 使设备能方便地接到 PROFIBUS DP现场总线网络中就显得尤为重要, 这也是近年来国内工业控制领域研究的新热点。



技术实现要素:

为解决现有技术所存在的技术不足,本发明提供了一种通讯配置数据自动解析的方法,通过采用一种以VPC3 为DP芯片的PROFIBUS DP从站自动读取主站长度配置信息,并自动进行解析,然后根据解析内容进行自动配置的方法,解决了一般从站需要根据上位机的配置信息通过外部拨码开关或手动方式设置数据输入输出长度来实现与上位机通讯的问题,明显的简化和缩短配置时间,减少配置错误。

本发明解决其技术问题所采用的技术方案是,一种通讯配置数据自动解析的方法,包括读取VPC3寄存器的实现方法,对主站配置数据的解析函数,根据解析结果对程序本身输入输出进行配置的函数,以及配置完毕对配置结果应答到主站的方法。

首先根据PROFIBUS DP标准配置信息,如下:

根据PROFIBUS DP标准配置信息定义需要解析的内容如下表格:

程序以中断的方式读取配置信息,当有上位机传来的新的配置信息时,程序会产生中断,中断响应函数会读取VPC3寄存器中主机发过来的配置信息根据配置信息指标表格进行解析,解析流程如下:

进入中断后由函数READ_VPC3(VPC3_BUF_ADD)和READ_VPC3(CFG_LENGTH)读取VPC3配置寄存器地址和配置长度,并调用长度计算函CALCULATE_INP_OUTP_LEN(CFG_PET, Config_DATA_LEN) 自动解析PLC配置信息CALCULATE_INP_OUTP_LEN(CFG_PET, Config_DATA_LEN)首先通过CFG_IS_BYTE_FORMAT 和CFG_IS_WORD_FORMAT,配置数据的第5位和第6位,确定配置输入输出是以“字节”为单位还是以“字”为单位,如果以字需要转化为字节,长度计算完毕,通过CFG_BF_INP_EXIST和CFG_BF_OUT_EXIST 确定是输入数据还是输出数据,最后由CFG_BF_LENGTH,取配置信息的低4位得到输入数据输出数据的确定长度,计算完毕返回输入输出长度信息,再通过函数SET_IO_DATA_LEN(User_IO_data_LEN_PTR),配置程序本身,函数SET_IO_DATA_LEN(User_IO_data_LEN_PTR)替代了传统的拨码开关或者其他方式设定输入输出长度,实现了输入输出长度信息的自动配置。

函数CALCULATE_INP_OUTP_LEN(CFG_PET, Config_DATA_LEN)通过指向PLC配置信息的指针和配置信息的个数的传递,实现了PLC配置信息自动解析为以字节为单位的长度。

以上函数CALCULATE_INP_OUTP_LEN(CFG_PET, CFG_LEN)通过参数uint16_t CFG_PET, uint8_t CFG_LEN实现了上位机配置信息的计算,计算后,并将计算长度以字节为长度的输入输出信息返回。

本发明的有益效果是,一种通讯配置数据自动解析的方法,由于采用了自动读取主站(PLC或HMI)的输入输出长度的配置信息,进行自动计算和配置,这样就可以简化设置本身输入输出长度的硬件拨码开关或其他软件设备,在使用时简化硬件器件,减少软件配置时间;尤其是在系统中,存在多个从站时,可以明显的简化和缩短配置时间,减少配置错误。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1为本发明的整个程序的流程图。

图2为本发明的中断程序流程图。

图3本发明的新的配置信息具体计算的流程图。

具体实施方式

参照附图,一种通讯配置数据自动解析的方法,包括读取VPC3寄存器的实现方法,对主站配置数据的解析函数,根据解析结果对程序本身输入输出进行配置的函数,以及配置完毕对配置结果应答到主站的方法。

1:主程序按图1所示的流程图进行运行,主控CPU采集的数据或者主站发给主CUP的信息在主程序的循环中进行。

2:通讯过程中,参数信息和配置信息是以图2所示的中断流程中进行的,主站下发新的配置信息给从站芯片VPC3,VPC3以中断的方式通知主CPU,主CPU接收中断信息后,先进行判断,确定为配置信息,即进入相应的配置信息中断程序。

3:进入配置中断信息后,程序会调用函数CALCULATE_INP_OUTP_LEN(uint16_t,uint8_t),对配置信息进行计算,如图3所示的流程图,程序收到的配置信息是否在程序初始化时binit.cfg_buf_len范围以内,如果在范围以内,则判断是输入数据或者输出数据,在确定数据基础上则判断是以“字”为单位的配置信息,还是以“字节”为单位的配置信息,如果以“字”为单位,需要乘以2,转化为字节,完成以上步骤,再确定本次循环读取输入配置和输出配置的长度,然后判断配置信息是否读完,如果没有读完,继续以上步骤,如果读取完毕,则将计算后的输入和输出长度反馈到中断程序,中断程序根据收到的输入输出长度配置程序本身,最终以配置的输入输出数据长度和主机进行数据交换。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1