本发明应用于工业自动化技术领域,提出一种基于i/o总线的数据发送优化方法。
背景技术:
i/o总线在工业自动化等领域有很广阔的应用,在工业现场i/o总线各类节点当中,ai节点由于其数据连续变化的特性,上送的数据量相对较大,易造成i/o总线数据帧冲突。为尽可能避免此类冲突,降低i/o总线发生数据冲突和仲裁机率,提高工业现场i/o总线数据发送稳定性,提出一种基于i/o总线的数据发送优化方法。
技术实现要素:
本发明的目的,在于提供一种总线数据的发送方法,通过对各类型数据发送方式和时机的控制,减少了多个i/o节点同时工作时的数据帧冲突,降低了i/o总线发生仲裁机率,提高工业现场i/o总线数据发送稳定性。
为了达成上述目的,本发明的解决方案是:一种基于i/o总线的数据发送优化方法,其特征在于包括如下步骤:
步骤一,在工业现场i/o总线的应用场合中,现场采集单元由iolink与各类i/o节点组成,各i/o节点与iolink之间采用总线传输数据;
步骤二,iolink通过i/o总线与各i/o节点完成时钟同步,保证各i/o节点同一时刻的时间标记相同;
步骤三,i/o节点数据按照类型进行分类,分别使用不同策略或独享不同时间片经i/o总线向iolink发送数据;
步骤四,di节点采用变位结合周期分时上送的方式,当数字量通道产生变位之后,立即上送该变位信号,否则以一定周期(秒级)分时上送所有通道数字量信号;
步骤五,ai节点采用周期分时发送方式,在同一时刻只有其中的一个节点向i/o总线发送数据。
上述步骤一中,i/o节点包括数字量输入节点、模拟量输入节点。
上述步骤二中,各i/o节点均能够识别自身的通讯地址,并保证一个iolink管理下的各个i/o节点地址唯一,进而结合同步时钟产生固定的时间递增序列从而为各i/o节点划分独立时间片。
上述步骤三中,iolink对各i/o节点运行状态的查询数据可利用iolink所在节点的时间片完成发送。
上述步骤四中,各i/o节点的数据处理和主动发送任务由各节点自身处理完成而不依赖于iolink。
本方案的有益效果为:采用上述方法后,减少了现场i/o采集单元中多个i/o节点同时工作时的数据帧冲突,降低了i/o总线发生仲裁机率,提高了工业现场i/o总线数据发送稳定性,相对于常规i/o总线数据收发方式,不增加硬件成本,实现过程简单,并且能够满足一般工业现场实时性要求。
附图说明
图1本发明数据发送方案示意图;
图2本发明中ai节点数据发送判断流程示意图。
具体实施方式
下面结合具体实施例对本发明做进一步的详细说明。
图1描述了本发明数据发送方案,现场i/o采集单元由i/o管理节点(iolink)和各类i/o节点组成,各i/o节点与iolink之间采用总线传输数据并完成时钟同步;i/o节点数据按照类型进行分类,分别使用不同策略或独享不同时间片经i/o总线向iolink发送数据;数字量输入(di)节点采用变位结合周期分时上送的方式;模拟量输入(ai)节点采用周期分时发送方式,在同一时刻时仅有一个ai节点向i/o总线发送数据。
以现场i/o采集单元为例,每块卡件作为一个i/o节点,iolink卡件通讯地址为1,各类i/o卡件通讯地址依次增加,i/o总线带宽按照1mbps计算,一块i/o卡件的通道数按照8计算,一个通道数据为16bit,发送完成时间小于1ms,考虑可靠发送,单块卡件发送时间按照3ms(ts)考虑,每块卡件的发送延时计算方法如下:
发送延时(单位ms)=(通讯地址–2)*3;
若该i/o采集单元最多容纳14块i/o卡件,按照满配ai卡件计算,轮循周期为14×3ms=42ms,则由此得出每块卡件的发送周期(t)需大于等于42ms,考虑裕量按照50ms设置,iolink卡件的查询报文时间片可利用其中剩余空闲的8ms完成。在图2中,针对ai卡件,当每次数据采集任务结束后进入步骤201的数据发送任务,在数据发送前需要满足步骤202的条件:
同步时间标识(单位ms)%50=(通讯地址–2)*3;
满足上述条件后,进入步骤203进行数据发送,不满足则不进行数据发送。
从实现效果来看:每一轮发送周期开始后,通讯地址为2的ai卡件延时0ms发送,通讯地址为3的ai卡件延时3ms发送,通讯地址为4的ai卡件延时6ms发送,依次类推……直到完成一轮所有ai卡件的数据发送,等待下一周期发送开始。
由于工业现场数字量信号与模拟量信号变化特性不同,数字量信号动作频率较低,采用变位结合秒级周期分时发送方式,兼顾信号上送实时性和i/o总线负荷;而模拟量信号实时发生变化,数据量较大,无论是采用定周期上送还是采用变化上送的方式,卡件均是各自为阵,发送数据无序不定,而采用上述方法后,同一时刻所有ai卡件中仅有一块向i/o总线发送数据;类似的,di卡件周期性发送数据也参照上述过程。相较现有做法而言,该优化方法减少了多个i/o卡件同时工作时的数据帧冲突,在保证数据发送实时性的同时,降低了i/o总线发生仲裁机率,提高了工业现场i/o总线数据发送稳定性。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。