CN111665778B - 一种plc控制器与上位机快速通讯传输和数据处理的方法 - Google Patents
一种plc控制器与上位机快速通讯传输和数据处理的方法 Download PDFInfo
- Publication number
- CN111665778B CN111665778B CN202010473249.XA CN202010473249A CN111665778B CN 111665778 B CN111665778 B CN 111665778B CN 202010473249 A CN202010473249 A CN 202010473249A CN 111665778 B CN111665778 B CN 111665778B
- Authority
- CN
- China
- Prior art keywords
- data
- communication
- data packet
- upper computer
- plc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/11—Plc I-O input output
- G05B2219/1103—Special, intelligent I-O processor, also plc can only access via processor
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Communication Control (AREA)
Abstract
本发明提供一种PLC控制器与上位机快速通讯传输和数据处理的方法,在PLC的监视的数据量大、数据变化少的应用场合,采用本发明,在每个通讯数据包中,占用若干个数据寄存器作为状态寄存器,用于向上位机传递数据包有变化数据信息。在PLC控制器中,开辟空间,放置暂存数据包,暂存数据包中的暂存寄存器与当前数据包对应的寄存器进行比较,对于有变化数据的当前数据包对其状态位进行取反,达到对有变化数据的数据包进行重点读取,显著地提高了上位机对变化数据的读取速度和处理速度。避免了上位机下发数据包读取信息而导致的时延,避免了传统方法的遥信变位的动作顺序的记录错误。
Description
技术领域
本发明涉及一种提高PLC传输和处理效率的方法,属于PLC应用领域。
背景技术
PLC存在一个很广泛的监视的数据量大、数据变化少的应用场合,例如地铁车站风水电系统,其对风水电的监视是基于BAS(Building Automation System,以下简称BAS)系统采用PLC(Programmable Logic Controller,以下简称PLC)进行监视。
PLC监视的数据采用寄存器存储和传输,一个寄存器通常占用两个字节。PLC通讯通常基于MODBUS通讯协议,正常报文一包数据125个寄存器,即250个字节。一个地铁车站PLC监视的数字量输入数据通常有三包,模拟量输入数据通常有十几包,查询一包数据需要耗时300毫秒,目前PLC采用全数据上送,则所有数据的传输需要耗时超过3秒,导致轮询周期长,上位机系统中数据刷新慢。上位机还需要消时,进行变化数据的筛选。如果增加数据包包含的寄存器的数量,虽然能减少数据包的数量,相应减少建立通讯链接次数,减少链接的时间,但报文长度增加,导致通讯失败的可能性大幅度提高,致使需要重复通讯,浪费通讯时间。
传统方法上位机都对每个数据包,即使没有变化的数据,仍然依次读取,浪费时间,如果发生突发的变化数据,由于上位机轮询未必正好读到出现变化数据的数据包,最不利的情况下,上位机刚读取完成一个数据包,此数据包发生数据变化,则上位机需要轮询一圈数据包,才能读到此有变化数据是数据包,如果数据包有十几个,则上位机反馈变化数据的时延是读取十几个数据包的时间,导致变化数据刷新慢。
发明内容
发明目的:本发明的目的是提供一种新的技术方案,用以提高了上位机对变化数据的读取速度和处理速度,以及用以避免上位机下发数据包读取信息而导致的时延,避免了传统方法的遥信变位的动作顺序的记录错误。
技术方案:为解决上述技术问题,本发明提供一种PLC控制器与上位机快速通讯传输和数据处理的方法:
将PLC总体分为两类,分别为PLC控制器和远程IO模块;
远程IO模块带有模拟量和数字量的输入和输出功能,用于测量和控制,远程IO模块还带有与子系统PLC进行通讯功能;
PLC控制器带有通讯功能和数据处理功能;
PLC控制器的通讯功能,用于完成各种通讯任务,包括与上位机通讯和与下位机通讯,这些通讯任务不受PLC控制器的用户程序控制,PLC通讯配置完成后,自主通讯,通讯的数据存取在PLC控制器中供通讯用的寄存器中;
前述上位机包括作为PLC控制器上级的计算机、服务器,以及通讯控制器,上位机通过通讯从PLC控制器获取数据和下发命令;
前述下位机包括远程IO模块、子系统PLC、子系统通讯模块,PLC控制器从下位机获取数据和向下位机下发命令;
PLC控制器的数据处理功能,由用户程序控制,对通讯功能读取到供通讯用的寄存器中的数据,进行逻辑判断,作出决策,再写入供通讯用的寄存器中,由PLC控制器的通讯功能进行通讯,以达到控制的目的;
前述PLC控制器的供通讯用的寄存器,按照与通讯对侧设备约定的点表进行填写,通讯对侧设备包括上位机和下位机;
前述PLC控制器与上位机进行通讯,数据存储在若干个通讯数据包中,数据包长度受限于与上位机通讯的报文长度的限制,通讯数据包分为三类,分别为数字量数据包、表示数字的模拟量数据包、纯模拟量数据包,数字量数据包放入数字量、表示数字的模拟量数据包放入表示数字的模拟量、纯模拟量数据包放入纯模拟量数据;每个通讯数据包的表示为数字量、表示数字的模拟量、纯模拟量三种数据包中的一种的设置变量保存在PLC控制器中和上位机中;
前述数字量,是指外部触点的开关量,有接通和断开两种状态,分别以0和1表示;
前述表示数字的模拟量,是指用于计数的数据,表现为模拟量,但当作数字量进行处理;
前述纯模拟量,是指测量的包括电压、电流、温度、湿度的会波动的数值;
前述数字量和表示数字的模拟量,合称为非纯模拟量;
前述通讯数据包由若干个数据寄存器组成,称为通讯寄存器;
每个通讯数据包包括多个远程IO模块的输入数据、或者包括多个子系统的输入数据;
前述每个PLC控制器与上位机通讯的通讯数据包,分别占用若干个数据寄存器作为状态寄存器,用于存放向上位机传递包含本身数据包在内的所有数据包“PLC控制器数据包有变化数据标志位”的相同信息,即当某个数据包“PLC控制器数据包有变化数据标志位”发生变位,则对所有数据包的状态寄存器对应的位进行相同的变位操作;
前述“PLC控制器数据包有变化数据标志位”的定义:通过其数据的变化来分别对应表示其对应的PLC控制器存储的数据包中至少有一个数据发生变化;从“0”到“1”或者从“1”到“0”都表示有变化数据,始终保持“1”或者“0”都表示没有变化数据;
在PLC控制器中开辟存储空间,用于存放通讯数据包的暂存数据包,其内部的数据寄存器称为暂存寄存器,暂存数据包中的每个暂存寄存器与前述用于与上位机通讯的通讯数据包中对应的通讯寄存器的定义完全一致,与暂存数据包对应的前述用于与上位机通讯的数据包,称为对应的数据包;与暂存寄存器对应的前述用于与上位机通讯的通讯数据包中的通讯寄存器,称为对应的寄存器;
PLC控制器初始化时,依次进行如下操作:把每个数据包对应的通讯获得的下位机的存储在寄存器中的数据,复制到每个通讯数据包对应的通讯寄存器中;把所有数据包“PLC控制器数据包有变化数据标志位”置“1”;
PLC控制器开始正常处理流程时,把每个数据包对应的通讯获得的下位机的存储在寄存器中的数据,复制到每个数据包对应的暂存数据包对应的暂存寄存器中;“PLC控制器当前数据包处理编号”变量置“1”,此“PLC控制器当前数据包处理编号”变量设置在PLC控制器中,用于表示PLC控制器程序当前正在处理的数据包的编号;
下面进入数据包的处理流程:“PLC控制器当前数据包寄存器处理编号”变量置“1”,此“PLC控制器当前数据包寄存器处理编号”变量设置在PLC控制器中,用于表示PLC控制器程序当前正在处理的数据包中的寄存器的编号;
PLC控制器依次对于每个数据包,分别按照纯模拟量数据包和非纯模拟量数据包分别逐个进行暂存数据包与对应的数据包有无变化数据的比较和处理;
当发现当前数据包有寄存器存在变化数据后,此数据包后续的数据不再比较,把当前暂存数据包中的暂存寄存器中的所有数据,复制到对应的通讯数据包对应的通讯寄存器,完成复制操作后,把当前数据包“PLC控制器数据包有变化数据标志位”取反,把“PLC控制器当前数据包处理编号”加1,进入下一个循环,直到比较完成所有数据包的数据;
当比较完成当前数据包,没有发现有变化的数据后,对于纯模拟量数据包,把当前暂存数据包中的暂存寄存器中的所有数据,复制到对应的通讯数据包对应的通讯寄存器,对于非纯模拟量数据包,不进行此复制操作;再把“PLC控制器当前数据包处理编号”加1,进入下一个循环,直到比较完成所有数据包的数据;
前述对数据寄存器逐个比较,判断是否有变化,包括对纯模拟量数据包和非纯模拟量数据包的比较;
前述对非纯模拟量的的比较,即对数字量或者表示数字的模拟量的比较是指,把暂存寄存器与对应的寄存器逐一比较,当不一致时,则认为当前的暂存寄存器是变化数据;
前述对纯模拟量的比较是指,在PLC控制器中配置对应于纯模拟量的变量,用于设置各个纯模拟量对应的变化阖值和幅值阖值,对纯模拟量的暂存寄存器的数值与对应的寄存器数值逐一进行相减比较,当超过变化阖值,则认为当前的暂存寄存器是变化数据;对纯模拟量的暂存寄存器的数值与对应的幅值阖值逐一进行比较,当超过幅值阖值,也认为当前的暂存寄存器是变化数据;
前述数据包“PLC控制器数据包有变化数据标志位”数据没有变化,意味着数据包没有变化数据,对于数字量数据包或者表示数字的模拟量数据包而言,是每个暂存寄存器与对应的寄存器数值相同,即没有变化;对于纯模拟量数据包而言,是每个暂存寄存器数值没有超过设定的变化阖值和幅值阖值;
在上位机中,设置“上位机当前数据包读取编号”变量,用于记录当前上位机处理的数据包的编号;
上位机初始化时,把每个数据包“上位机保存的PLC控制器数据包有变化数据标志位”变量置“0”;把“上位机当前数据包读取编号”置“1”;
上位机对PLC的数据读取,位于上位机最高优先级进程中,进入进程,依次进行如下操作:读取和预处理当前数据包所有数据;当读取的所有数据包“PLC控制器数据包有变化数据标志位”与“上位机保存的PLC控制器数据包有变化数据标志位”相同,即没有任何一个有变化数据的数据包时,把“上位机当前数据包读取编号”加1;当“上位机当前数据包读取编号”不大于数据包数量,则离开进程;当“上位机当前数据包读取编号”大于数据包数量,则“上位机当前数据包读取编号”置“1”,再离开进程;当读取的所有数据包“PLC控制器数据包有变化数据标志位”与“上位机保存的PLC控制器数据包有变化数据标志位”不相同,即至少存在一个有变化数据的数据包时,则依次读取和预处理有变化数据的数据包的所有数据,并把所有数据包“上位机保存的PLC控制器数据包有变化数据标志位”变量赋给“上位机原始保存的PLC控制器数据包有变化数据原始标志位”;把“PLC控制器数据包有变化数据标志位”变量赋给“上位机保存的PLC控制器数据包有变化数据标志位”;把最后一个有变化数据的数据包编号赋给“上位机当前数据包读取编号”,触发次高优先级进程;把“上位机当前数据包读取编号”加1;当“上位机当前数据包读取编号”不大于数据包数量,则离开进程;当“上位机当前数据包读取编号”大于数据包数量,则“上位机当前数据包读取编号”置“1”,再离开进程;
上位机处理“上位机保存的PLC控制器数据包有变化数据标志位”与“上位机原始保存的PLC控制器数据包有变化数据标志位”不相等的位对应的所有有变化数据的数据包,位于上位机次高优先级进程;
前述把最后一个有变化数据的数据包编号赋给“上位机当前数据包读取编号”,把“上位机当前数据包读取编号”加1,使得上位机下一次从最后一个有变化的数据包之后的数据包开始读取;
前述每个数据包“上位机保存的PLC控制器数据包有变化数据标志位”变量,在上位机中设置,与通讯获得的“PLC控制器数据包有变化数据标志位”变量一一对应,用于在上位机进行比较,比较发现不同的标志位,对应表示有需要通讯传输的有变化数据的数据包;
前述每个数据包“上位机原始保存的PLC控制器数据包有变化数据标志位”变量,在上位机中设置,与上位机保存的“上位机保存的PLC控制器数据包有变化数据标志位”变量一一对应,用于在上位机进行比较,比较发现不同的标志位,对应表示有变化数据的数据包。
本发明方法的特点是:
上位机不发送数据包读取信息,避免了通讯造成的时延。
当发现数据包有寄存器存在变化数据后,“PLC控制器数据包有变化数据标志位”用取反操作,而不采用通常会选择的置位操作。置位存在的问题是必须要靠上位机来发送报文,表示收到数据包,清标志,这个额外的上位机发送的报文,会占用通讯时间,增长整体的通讯时间,如果不靠上位机来发送报文,来清标志,则下次再发现变化数据,再次置位,上位机就无法获悉数此据包发生了两次数据变化。而本发明采用取反操作,如果标志位原来为“0”,PLC控制器发现变化数量,则取反操作后,标志位变为“1”,直到再次发现此数据包有变化数据,取反操作后,标志位变为“0”,取反的间隔时间是一个数据包出现两次变化数据的时间。
上位机发现至少存在一个有变化数据的数据包,处理完成后,把最后一个有变化数据的数据包编号赋给“上位机当前数据包读取编号”。即下一个数据包的读取,不再按照原先依次读取顺序,而是读取最后一个有变化数据的数据包的下一个数据包,以保证尽可能快地读取发现变化数据包之前未读取的数据包。
有益效果
相对于现有技术,本发明提供的技术方案可以具有以下有益效果:
在PLC的监视的数据量大、数据变化少的应用场合,采用本发明,在每个通讯数据包中,占用若干个数据寄存器作为状态寄存器,用于向上位机传递数据包有变化数据信息。在PLC控制器中,开辟空间,放置暂存数据包,暂存数据包中的暂存寄存器与当前数据包对应的寄存器进行比较,对于有变化数据的当前数据包对其状态位进行取反,达到对有变化数据的数据包进行重点读取,显著地提高了上位机对变化数据的读取速度和处理速度。避免了上位机下发数据包读取信息而导致的时延,避免了传统方法的遥信变位的动作顺序的记录错误。
附图说明
图1为PLC控制器数据处理逻辑图。
图2为上位机数据处理初始化逻辑图。
图3为上位机数据读取逻辑图。
图4为上位机数据处理逻辑图。
图5为数据和标志位的流向逻辑图。
具体实施方式
结合图1至图5所示,本发明公开了一种PLC控制器与上位机快速通讯传输和数据处理的方法,包括如图1所示的PLC控制器数据处理逻辑,如图2所示的上位机数据处理初始化逻辑。
及,如图3所示的上位机数据读取逻辑,上位机读取PLC数据的任务,位于上位机的最高优先级进程。
如图4所示的上位机数据处理逻辑,上位机处理取所有有变化数据的数据包的任务,位于上位机的次高优先级进程。即当最高优先级进程的所有任务完成后,执行次高优先级进程中的上位机处理取所有有变化数据的数据包的任务。
如图5所示的数据和标志位的流向逻辑。从下向上依次为:
下位机从被测设备获得模拟量和数字量数据。
PLC从下位机读取此数据,存入暂存数据包,再把暂存包复制给通讯数据包,并这每个通讯数据包中加入所有数据包“PLC控制器数据包有变化数据标志位”。
上位机从PLC读取数据包,把所有数据包“上位机保存的PLC控制器数据包有变化数据标志位”变量赋给“上位机原始保存的PLC控制器数据包有变化数据原始标志位”;把“PLC控制器数据包有变化数据标志位”变量赋给“上位机保存的PLC控制器数据包有变化数据标志位”。
下面进行各种通讯方式的比较,一个典型的考核指标是当读取完一个数据包,此数据包对应的PLC存储的数据包出现变化数据,上位机再次读到此数据包的时延。
方法1:当采用三包数据,两个250个寄存器的数字量数据包,一个2000个寄存器的模拟量数据包,上位机的数据包读取间隔时间为500毫秒,则典型的考核指标的时延为1500毫秒,另外上位机还需要后续对读取的数据包进行有变化数据的筛选,还需要额外花费较多的时间。此方法总体需要时延较长。
方法2:当采用传统的每个数据包125个寄存器,有3个数字量数据包,13个模拟量数据包,共16个数据包,上位机的数据包读取间隔时间为300毫秒,则典型的考核指标的时延为4800毫秒,另外上位机还需要后续对读取的数据包进行有变化数据的筛选,还需要额外花费较多的时间。此方法总体需要时延很长。
方法3:当采用本发明的方法,每个数据包是125个寄存器,数据包可以任意数量,上位机的数据包读取间隔时间为300毫秒,则典型的考核指标的时延为600毫秒,即读取下一个数据包,发现了一个有变化数据的数据包的标志位变化,跳转去读此数据包,时延600毫秒。另外上位机还需要后续对读取的数据包进行有变化数据的筛选,本发明的方法由于在上位机保存了两组变化,还需要额外花费的时间很短。本发明的方法总体需要时延很短,为方法1的1/2,为方法2的1/4。
下面分析上位机与PLC之间,有通讯控制器的情况。
传统方法是通讯控制器采用IEC104或者103通讯,变位遥信和变化遥测,能很快发送变化数据包给上位机,但通讯控制器与PL之间C仍然需要异步通讯,当PLC出现有变化数据的数据包,如果采用传统的数据包依次上送的方法,最不利的情况是轮询轮询一圈,通讯控制器才得到有变化数据的数据包,时延很长,在此之前,通讯控制器与上位机看似在快速进行变化数据的通讯,但传输的都是存储在通讯控制器中的旧数据。
上位机采用本发明的方法,通讯控制器采用透明传输,即数据不在通讯控制器保存,则上位机获得PLC变化数据包的时延比采用本发明的无通讯控制器的情况,只多了一个上位机向通讯控制器发送取数据命令和通讯控制器向上位机传送数据包的时间。此方法存在的问题是:数据不在通讯控制器中保存,当需要向多个上位机发送PLC的数据包时,需要多次向PLC取数据包。
上位机采用IEC104或者103与通讯控制器通讯,通讯控制器与PLC之间采用本发明的方法,通讯控制器存储处理从PLC取到的数据,则上位机获得PLC变化数据包的时延比采用本发明的无通讯控制器的情况,与上述方法一样,只多了一个上位机向通讯控制器发送取数据命令和通讯控制器向上位机传送数据包的时间。
Claims (1)
1.一种PLC控制器与上位机快速通讯传输和数据处理的方法,其特征在于:
将PLC总体分为两类,分别为PLC控制器和远程IO模块;
远程IO模块带有模拟量和数字量的输入和输出功能,用于测量和控制,远程IO模块还带有与子系统PLC进行通讯功能;
PLC控制器带有通讯功能和数据处理功能;
PLC控制器的通讯功能,用于完成各种通讯任务,包括与上位机通讯和与下位机通讯,这些通讯任务不受PLC控制器的用户程序控制,PLC通讯配置完成后,自主通讯,通讯的数据存取在PLC控制器中供通讯用的寄存器中;
前述上位机包括作为PLC控制器上级的计算机、服务器,以及通讯控制器,上位机通过通讯从PLC控制器获取数据和下发命令;
前述下位机包括远程IO模块、子系统PLC、子系统通讯模块,PLC控制器从下位机获取数据和向下位机下发命令;
PLC控制器的数据处理功能,由用户程序控制,对通讯功能读取到供通讯用的寄存器中的数据,进行逻辑判断,作出决策,再写入供通讯用的寄存器中,由PLC控制器的通讯功能进行通讯,以达到控制的目的;
前述PLC控制器的供通讯用的寄存器,按照与通讯对侧设备约定的点表进行填写,通讯对侧设备包括上位机和下位机;
前述PLC控制器与上位机进行通讯,数据存储在若干个通讯数据包中,通讯数据包长度受限于与上位机通讯的报文长度的限制,通讯数据包分为三类,分别为数字量数据包、表示数字的模拟量数据包、纯模拟量数据包,数字量数据包放入数字量、表示数字的模拟量数据包放入表示数字的模拟量、纯模拟量数据包放入纯模拟量数据;每个通讯数据包的表示为数字量、表示数字的模拟量、纯模拟量三种通讯数据包中的一种的设置变量保存在PLC控制器中和上位机中;
前述数字量,是指外部触点的开关量,有接通和断开两种状态,分别以0和1表示;
前述表示数字的模拟量,是指用于计数的数据,表现为模拟量,但当作数字量进行处理;
前述纯模拟量,是指测量的包括电压、电流、温度、湿度的会波动的数值;
前述数字量和表示数字的模拟量,合称为非纯模拟量;
前述通讯数据包由若干个数据寄存器组成,称为通讯寄存器;
每个通讯数据包包括多个远程IO模块的输入数据、或者包括多个子系统的输入数据;
前述PLC控制器与上位机通讯的通讯数据包,分别占用若干个数据寄存器作为状态寄存器,用于存放向上位机传递包含本身通讯数据包在内的所有通讯数据包“PLC控制器数据包有变化数据标志位”的相同信息,即当某个通讯数据包“PLC控制器数据包有变化数据标志位”发生变位,则对所有通讯数据包的状态寄存器对应的位进行相同的变位操作;
前述“PLC控制器数据包有变化数据标志位”的定义:通过其数据的变化来分别对应表示其对应的PLC控制器存储的通讯数据包中至少有一个数据发生变化;从“0”到“1”或者从“1”到“0”都表示有变化数据,始终保持“1”或者“0”都表示没有变化数据;
在PLC控制器中开辟存储空间,用于存放通讯数据包的暂存数据包,其内部的数据寄存器称为暂存寄存器,暂存数据包中的每个暂存寄存器与前述用于与上位机通讯的通讯数据包中对应的通讯寄存器的定义完全一致,与暂存数据包对应的前述用于与上位机通讯的通讯数据包,称为对应的通讯数据包;与暂存寄存器对应的前述用于与上位机通讯的通讯数据包中的通讯寄存器,称为对应的通讯寄存器;
PLC控制器初始化时,依次进行如下操作:把每个通讯数据包对应的通讯获得的下位机存储在下位机寄存器中的数据,复制到每个通讯数据包对应的通讯寄存器中;把所有通讯数据包“PLC控制器数据包有变化数据标志位”置“1”;
PLC控制器开始正常处理流程时,把每个通讯数据包对应的通讯获得的下位机存储在下位机寄存器中的数据,复制到每个通讯数据包对应的暂存数据包对应的暂存寄存器中;“PLC控制器当前数据包处理编号”变量置“1”,此“PLC控制器当前数据包处理编号”变量设置在PLC控制器中,用于表示PLC控制器程序当前正在处理的通讯数据包的编号;
下面进入通讯数据包的处理流程:“PLC控制器当前数据包寄存器处理编号”变量置“1”,此“PLC控制器当前数据包寄存器处理编号”变量设置在PLC控制器中,用于表示PLC控制器程序当前正在处理的通讯数据包中的通讯寄存器的编号;
PLC控制器依次对于每个通讯数据包,分别按照纯模拟量数据包和非纯模拟量数据包分别逐个进行暂存数据包与对应的通讯数据包有无变化数据的比较和处理;
当发现当前通讯数据包有通讯寄存器存在变化数据后,此通讯数据包后续的数据不再比较,把当前暂存数据包中的暂存寄存器中的所有数据,复制到对应的通讯数据包对应的通讯寄存器,完成复制操作后,把当前通讯数据包“PLC控制器数据包有变化数据标志位”取反,把“PLC控制器当前数据包处理编号”加1,进入下一个循环,直到比较完成所有通讯数据包的数据;
当比较完成当前通讯数据包,没有发现有变化的数据后,对于纯模拟量数据包,把当前暂存数据包中的暂存寄存器中的所有数据,复制到对应的通讯数据包对应的通讯寄存器,对于非纯模拟量数据包,不进行此复制操作;再把“PLC控制器当前数据包处理编号”加1,进入下一个循环,直到比较完成所有通讯数据包的数据;
前述对通讯数据寄存器逐个比较,判断是否有变化,包括对纯模拟量数据包和非纯模拟量数据包的比较;
前述对非纯模拟量数据包的比较,即对数字量或者表示数字的模拟量的比较是指,把暂存寄存器与对应的通讯寄存器逐一比较,当不一致时,则认为当前的暂存寄存器是变化数据;
前述对纯模拟量的比较是指,在PLC控制器中配置对应于纯模拟量的变量,用于设置各个纯模拟量对应的变化阈值和幅值阈值,对纯模拟量的暂存寄存器的数值与对应的通讯寄存器数值逐一进行相减比较,当超过变化阈值,则认为当前的暂存寄存器是变化数据;对纯模拟量的暂存寄存器的数值与对应的幅值阈值逐一进行比较,当超过幅值阈值,也认为当前的暂存寄存器是变化数据;
前述通讯数据包“PLC控制器数据包有变化数据标志位”数据没有变化,意味着通讯数据包没有变化数据,对于数字量数据包或者表示数字的模拟量数据包而言,是每个暂存寄存器与对应的通讯寄存器数值相同,即没有变化;对于纯模拟量数据包而言,是每个暂存寄存器数值没有超过设定的变化阈值和幅值阈值;
在上位机中,设置“上位机当前数据包读取编号”变量,用于记录当前上位机处理的通讯数据包的编号;
上位机初始化时,把每个通讯数据包“上位机保存的PLC控制器数据包有变化数据标志位”变量置“0”;把“上位机当前数据包读取编号”置“1”;
上位机对PLC的数据读取,位于上位机最高优先级进程中,进入进程,依次进行如下操作:读取和预处理当前通讯数据包所有数据;当读取的所有通讯数据包“PLC控制器数据包有变化数据标志位”与“上位机保存的PLC控制器数据包有变化数据标志位”相同,即没有任何一个有变化数据的通讯数据包时,把“上位机当前数据包读取编号”加1;当“上位机当前数据包读取编号”不大于通讯数据包数量,则离开进程;当“上位机当前数据包读取编号”大于通讯数据包数量,则“上位机当前数据包读取编号” 置“1”,再离开进程;当读取的所有通讯数据包“PLC控制器数据包有变化数据标志位”与“上位机保存的PLC控制器数据包有变化数据标志位”不相同,即至少存在一个有变化数据的通讯数据包时,则依次读取和预处理有变化数据的通讯数据包的所有数据,并把所有通讯数据包“上位机保存的PLC控制器数据包有变化数据标志位”变量赋给“上位机原始保存的PLC控制器数据包有变化数据原始标志位”;把“PLC控制器数据包有变化数据标志位”变量赋给“上位机保存的PLC控制器数据包有变化数据标志位”;把最后一个有变化数据的通讯数据包编号赋给“上位机当前数据包读取编号”,触发次高优先级进程;把“上位机当前数据包读取编号”加1;当“上位机当前数据包读取编号”不大于通讯数据包数量,则离开进程;当“上位机当前数据包读取编号”大于通讯数据包数量,则“上位机当前通讯数据包读取编号” 置“1”,再离开进程;
上位机处理“上位机保存的PLC控制器数据包有变化数据标志位”与“上位机原始保存的PLC控制器数据包有变化数据标志位”不相等的位对应的所有有变化数据的通讯数据包,位于上位机次高优先级进程;
前述把最后一个有变化数据的通讯数据包编号赋给“上位机当前数据包读取编号”,把“上位机当前数据包读取编号”加1,使得上位机下一次从最后一个有变化数据的通讯数据包之后的通讯数据包开始读取;
前述通讯数据包“上位机保存的PLC控制器数据包有变化数据标志位”变量,在上位机中设置,与通讯获得的“PLC控制器数据包有变化数据标志位”变量一一对应,用于在上位机进行比较,比较发现不同的标志位,对应表示有需要通讯传输的有变化数据的通讯数据包;
前述通讯数据包“上位机原始保存的PLC控制器数据包有变化数据标志位”变量,在上位机中设置,与上位机保存的“上位机保存的PLC控制器数据包有变化数据标志位”变量一一对应,用于在上位机进行比较,比较发现不同的标志位,对应表示有变化数据的通讯数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010473249.XA CN111665778B (zh) | 2020-05-29 | 2020-05-29 | 一种plc控制器与上位机快速通讯传输和数据处理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010473249.XA CN111665778B (zh) | 2020-05-29 | 2020-05-29 | 一种plc控制器与上位机快速通讯传输和数据处理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111665778A CN111665778A (zh) | 2020-09-15 |
CN111665778B true CN111665778B (zh) | 2022-05-24 |
Family
ID=72385117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010473249.XA Active CN111665778B (zh) | 2020-05-29 | 2020-05-29 | 一种plc控制器与上位机快速通讯传输和数据处理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111665778B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114791723B (zh) * | 2022-05-11 | 2023-09-29 | 傲拓科技股份有限公司 | 一种大型plc系统及其数据压缩方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3587060A (en) * | 1969-10-21 | 1971-06-22 | Bell Telephone Labor Inc | Shared memory data processing system |
GB1486900A (en) * | 1973-11-30 | 1977-09-28 | Cii Honeywell Bull | Data processing system |
US5311508A (en) * | 1991-12-23 | 1994-05-10 | Square D Company | Apparatus for receiving and decoding a serial data packet containing the status of a network of single point I/O devices |
CN101540653A (zh) * | 2009-04-29 | 2009-09-23 | 华为技术有限公司 | 数据发送和接收方法、数据传输装置和数据传输系统 |
CN107862074A (zh) * | 2017-11-24 | 2018-03-30 | 中国航空工业集团公司西安航空计算技术研究所 | 大数据量参数快速读写方法 |
CN110320853A (zh) * | 2019-07-30 | 2019-10-11 | 翼石电子股份有限公司 | 一种plc数据采集分析方法及系统 |
-
2020
- 2020-05-29 CN CN202010473249.XA patent/CN111665778B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3587060A (en) * | 1969-10-21 | 1971-06-22 | Bell Telephone Labor Inc | Shared memory data processing system |
GB1486900A (en) * | 1973-11-30 | 1977-09-28 | Cii Honeywell Bull | Data processing system |
US5311508A (en) * | 1991-12-23 | 1994-05-10 | Square D Company | Apparatus for receiving and decoding a serial data packet containing the status of a network of single point I/O devices |
CN101540653A (zh) * | 2009-04-29 | 2009-09-23 | 华为技术有限公司 | 数据发送和接收方法、数据传输装置和数据传输系统 |
CN107862074A (zh) * | 2017-11-24 | 2018-03-30 | 中国航空工业集团公司西安航空计算技术研究所 | 大数据量参数快速读写方法 |
CN110320853A (zh) * | 2019-07-30 | 2019-10-11 | 翼石电子股份有限公司 | 一种plc数据采集分析方法及系统 |
Non-Patent Citations (1)
Title |
---|
上、下位机数据高速通讯方法及其在大型锻压机中的应用;舒招强等;《锻压技术》;20130225(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111665778A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10917706B2 (en) | Configurable IoT device data collection | |
CN110941218B (zh) | 一种can总线控制器测试方法 | |
CN111104272B (zh) | 一种基于rx和tx的can总线控制器测试方法 | |
CN109361585B (zh) | 一种主节点自动设置子节点波特率和地址的方法 | |
CN111665778B (zh) | 一种plc控制器与上位机快速通讯传输和数据处理的方法 | |
CN106940533B (zh) | 一种基于云超实时仿真平台与硬件在环的实时决策方法 | |
CN103941625B (zh) | Can总线数据传输监控系统 | |
CN106603359A (zh) | Plc系统的通讯控制方法及装置 | |
US7013184B2 (en) | Fieldbus device | |
CN111722581B (zh) | 提高plc控制器与上位机通讯传输和数据处理效率的方法 | |
CN108696375B (zh) | 工业网络信息获取装置、方法、监控系统及存储介质 | |
US4644467A (en) | Multi-level dynamic priority selector groups of data elements | |
CN117369359A (zh) | 工业自动化控制系统及控制方法 | |
CN102195805B (zh) | 通信装置及通信方法 | |
CN109270885B (zh) | 监测plc系统的数据通信方法、装置、设备及存储介质 | |
CN114091245B (zh) | 一种基于Simulink和低代码控制器的硬件在环教学实验方法 | |
CN108490338B (zh) | 测试设备、测试方法、计算机设备和计算机可读存储介质 | |
CN115705267A (zh) | 监控采集设备、基于监控采集设备的主备切换方法及系统 | |
US3906163A (en) | Peripheral control unit for a communication switching system | |
US10572403B1 (en) | Complex programmable logic device with capability of performing multi-address response and operation method thereof | |
CN102393672A (zh) | 可编程逻辑控制器及其扩展模块 | |
CN109635458A (zh) | 一种通用物联网软网关的设计方法 | |
CN114167845B (zh) | 一种plc与设备的通讯离线诊断方法和系统 | |
US7600041B2 (en) | Industrial or domestic local network | |
EP4080298A1 (en) | Plc analog module comprising hart pass-through interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221205 Address after: No. 19, Jiangning District, Jiangning District, Nanjing, Jiangsu Patentee after: NARI TECHNOLOGY Co.,Ltd. Patentee after: NARI Rail Transit Technology Co.,Ltd. Address before: No. 19, Jiangning District, Jiangning District, Nanjing, Jiangsu Patentee before: NARI TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |