CN116844321A - 用于工控系统中do模块的多通道脉宽输出实现方法 - Google Patents

用于工控系统中do模块的多通道脉宽输出实现方法 Download PDF

Info

Publication number
CN116844321A
CN116844321A CN202311124529.XA CN202311124529A CN116844321A CN 116844321 A CN116844321 A CN 116844321A CN 202311124529 A CN202311124529 A CN 202311124529A CN 116844321 A CN116844321 A CN 116844321A
Authority
CN
China
Prior art keywords
output
pulse width
output channel
control command
pulse
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.)
Granted
Application number
CN202311124529.XA
Other languages
English (en)
Other versions
CN116844321B (zh
Inventor
鹿洪飞
李绍勇
林嵩松
杨汶佼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202311124529.XA priority Critical patent/CN116844321B/zh
Publication of CN116844321A publication Critical patent/CN116844321A/zh
Application granted granted Critical
Publication of CN116844321B publication Critical patent/CN116844321B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C19/00Electric signal transmission systems
    • G08C19/16Electric signal transmission systems in which transmission is by pulses
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C19/00Electric signal transmission systems
    • G08C19/30Electric signal transmission systems in which transmission is by selection of one or more conductors or channels from a plurality of conductors or channels
    • G08C19/34Electric signal transmission systems in which transmission is by selection of one or more conductors or channels from a plurality of conductors or channels of a combination of conductors or channels
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Selective Calling Equipment (AREA)

Abstract

本说明书公开了一种用于工控系统中DO模块的多通道脉宽输出实现方法,终端设备可以根据接收到的控制命令,实时更新每个输出通道的控制命令相关数据,并且会为每个输出通道设有独立的脉宽计数器,在执行控制命令过程中,可以根据脉宽定时器的计时,实时同步更新相应的输出通道的脉宽计数器的计数。从而能够保证在接收到冗余控制命令或者前后间隔时间较短的两条控制命令时,工控系统中DO模块的各个输出通道的独立控制以及各个输出通道的脉宽输出的计时准确性以及实时性。

Description

用于工控系统中DO模块的多通道脉宽输出实现方法
技术领域
本说明书涉及计算机技术领域,尤其涉及一种用于工控系统中DO模块的多通道脉宽输出实现方法。
背景技术
现如今,工控系统中的用于控制信号输出的数字信号输出(Digital Output,DO)模块可以根据接收到的上位机下发的控制命令来输出控制命令中指定时长的脉冲信号(例如,控制命令中会规定每个输出通道中需要输出的脉冲信号以及脉冲信号的输出时长),这大大提高了工控系统的工作效率,促进了现代社会的发展和人类社会的进步。
而在实际应用中,为了确保工控系统中发出控制命令的上位机和接收控制命令的底层DO模块之间的通信稳定不中断,上位机会通过与DO模块之间建立的冗余通信链路发送冗余的控制命令,以避免通信链路中断导致的通信失败的情况。
然而,现有的通信控制方法中当DO模块接收到冗余控制命令时,由于用于计算控制命令中电平信号输出时长的微控制器(MCU)的脉宽定时器是一种外设资源,而微控制器(Micro Control Unit,MCU)的外设资源有限,因此,常规的控制方法分为两种:其一,各个输出通道同时触发脉宽定时器的计数器,即各个输出通道的脉宽计时起点一致,这种方法缺点是各个输出通道是关联的,无法独立控制各个输出通道;其二,各个输出通道分别计时,可独立控制各个输出通道,但是会由于计时起点不一致导致无法通过清空计时器计数器,所以对于毫秒级的脉宽定时器而言,输出通道输出的脉宽值会根据命令到来的时间,在±1ms的范围内波动,脉宽值控制不够精确,且上述两种方法在重复执行冗余控制命令或者两条命令间隔时间较短时,均会导致脉宽值重新计数,变相的延长了脉宽时间。由此可见,重复处理冗余控制命令会造成DO模块输出脉宽值计时不准确。可见现有的控制方法都无法完成各个输出通道输出的脉冲信号的准确计时,因此,无法很好的执行控制命令。
因此,如何使得DO模块在接收到冗余控制命令或者间隔时长较短的两条控制命令时,依然能够实现DO模块中各个输出通道独立、互不干扰的输出,则是个亟待解决的问题。
发明内容
本说明书提供一种用于工控系统中DO模块的多通道脉宽输出实现方法,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种用于工控系统中DO模块的多通道脉宽输出实现方法,包括:
接收控制命令,置位脉宽输出更新标志位;
当接收到脉宽定时器发送的信号,判断所述脉宽输出更新标志位是否为置位状态,若确定所述脉宽输出更新标志位为置位状态,则根据所述控制命令,确定每个输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号,并清空所述脉宽输出更新标志位,所述脉宽定时器每隔预设时间间隔发送信号;
接收所述脉宽定时器发送的信号,并响应于所述脉宽定时器发送的信号,根据所述每个输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号,在每个输出通道输出脉冲信号时同步更新每个输出通道对应的脉宽计数器的计数,其中,针对每个输出通道,该输出通道的脉宽计数器的计数用于表示该输出通道已经持续输出的脉冲信号的时长;
遍历每个输出通道,以在当检测到所有输出通道的脉宽计数器的计数均为结束状态对应的计数时,清空各输出通道对应的脉宽定时器的计数器,其中,所述脉宽定时器的计数器用于监测需要监控的输出通道所输出的脉冲信号的时长。
可选地,根据所述控制命令,确定每个输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号,具体包括:
根据所述控制命令,确定每个输出通道以脉宽输出形式输出所述控制命令对应的脉冲信号时对应的控制命令相关数据,其中,所述控制命令相关数据至少包括是否需要输出脉冲信号以及脉冲信号输出时长;
针对每个输出通道,根据该输出通道对应的控制命令相关数据,确定该输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号。
可选地,所述方法还包括:
每当接收到所述脉宽定时器发送的信号,则遍历每个输出通道,针对每个输出通道,当检测到该输出通道的脉宽计数器的计数大于该输出通道对应的控制命令相关数据中的脉冲信号输出时长,并且该输出通道正在输出脉冲信号时,则清空该输出通道的脉宽计数器的计数,并关闭该输出通道的脉冲信号的输出。
可选地,所述方法还包括:
遍历每个输出通道,针对每个输出通道,当检测到该输出通道的脉宽计数器计数为结束状态对应的计数时,则更新脉宽结束标志位的数值,其中,所述脉宽结束标志位的数值用于表示工作状态为结束状态的输出通道的个数;
当检测到所有输出通道的脉宽计数器计数均为结束状态对应的计数时,具体包括:
当检测到更新脉宽结束标志位的数值等于所有输出通道的总数时,则确定所有输出通道的脉宽计数器计数均为结束状态对应的计数。
可选的,所述方法还包括:
遍历每个输出通道,针对每个输出通道,当检测到该输出通道正在输出脉冲信号,则将该输出通道对应的输出使能标志确定为工作状态对应的使能标志,其中,所述输出使能标志用于表示输出通道的工作状态;
当检测到该输出通道正在输出脉冲信号,具体包括:
当检测到该输出通道对应的输出使能标志为工作状态对应的使能标志,则确定该输出通道正在输出脉冲信号。
本说明书提供了一种用于工控系统中DO模块的多通道脉宽输出的装置,包括:
接收模块,用于接收控制命令,置位脉宽输出更新标志位;
判断模块,用于当接收到脉宽定时器发送的信号,判断所述脉宽输出更新标志位是否为置位状态,若确定所述脉宽输出更新标志位为置位状态,则根据所述控制命令,确定每个输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号,并清空所述脉宽输出更新标志位,所述脉宽定时器每隔预设时间间隔发送信号;
响应模块,用于接收所述脉宽定时器发送的信号,并响应于所述脉宽定时器发送的信号,根据所述每个输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号,在每个输出通道输出脉冲信号时同步更新每个输出通道对应的脉宽计数器的计数,其中,针对每个输出通道,该输出通道的脉宽计数器的计数用于表示该输出通道已经持续输出的脉冲信号的时长;
遍历模块,用于遍历每个输出通道,以在当检测到所有输出通道的脉宽计数器的计数均为结束状态对应的计数时,清空各输出通道对应的脉宽定时器的计数器,其中,所述脉宽定时器的计数器用于监测需要监控的输出通道所输出的脉冲信号的时长。
可选的,所述判断模块具体用于,根据所述控制命令,确定每个输出通道以脉宽输出形式输出所述控制命令对应的脉冲信号时对应的控制命令相关数据,其中,所述控制命令相关数据至少包括是否需要输出脉冲信号以及脉冲信号输出时长;针对每个输出通道,根据该输出通道对应的控制命令相关数据,确定该输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号。
可选的,所述装置还包括:清空模块,其中,所述清空模块用于每当接收到所述脉宽定时器发送的信号,则遍历每个输出通道,针对每个输出通道,当检测到该输出通道的脉宽计数器的计数大于该输出通道对应的控制命令相关数据中的脉冲信号输出时长,并且该输出通道正在输出脉冲信号时,则清空该输出通道的脉宽计数器的计数,并关闭该输出通道的脉冲信号的输出。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述用于工控系统中DO模块的多通道脉宽输出的方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述用于工控系统中DO模块的多通道脉宽输出的方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
本说明书提供的用于工控系统中DO模块的多通道脉宽输出的方法,接收控制命令,置位脉宽输出更新标志位,当接收到脉宽定时器发送的信号,判断该脉宽输出更新标志位是否为置位状态,若确定该脉宽输出更新标志位为置位状态,则根据该控制命令,确定每个输出通道以脉宽输出形式所输出的该控制命令对应的脉冲信号,并清空该脉宽输出更新标志位,该脉宽定时器每隔预设时间间隔发送信号,接收该脉宽定时器发送的信号,并响应于该脉宽定时器发送的信号,根据该每个输出通道以脉宽输出形式所输出的该控制命令对应的脉冲信号,在每个输出通道输出脉冲信号时同步更新每个输出通道对应的脉宽计数器的计数,其中,针对每个输出通道,该输出通道的脉宽计数器的计数用于表示该输出通道已经持续输出的脉冲信号的时长,遍历每个输出通道,以在当检测到所有输出通道的脉宽计数器的计数均为结束状态对应的计数时,清空各输出通道对应的脉宽定时器的计数器,其中,该脉宽定时器的计数器用于监测需要监控的输出通道所输出的脉冲信号的时长。
从上述方法中可以看出,在用于工控系统中DO模块的多通道脉宽输出时,终端设备可以根据接收到的控制命令,实时更新每个输出通道的控制命令相关数据,并且会为每个输出通道设有独立的脉宽计数器,在执行控制命令过程中,可以根据脉宽定时器的计时,实时同步更新相应的输出通道的脉宽计数器的计数。从而能够保证在接收到冗余控制命令或者前后间隔时间较短的两条控制命令时,工控系统中DO模块的各个输出通道的独立控制以及各个输出通道的脉宽输出的计时准确性以及实时性。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种用于工控系统中DO模块的多通道脉宽输出实现方法的流程示意图;
图2为本说明书中提供的一种控制命令的接收的流程示意图;
图3为本说明书中提供的一种控制命令的解析的流程示意图;
图4为本说明书中提供的一种控制命令执行时所涉及参数的示意图;
图5为本说明书中提供的一种控制命令的响应方式的示意图;
图6为本说明书中提供的一种脉宽定时器的执行逻辑的示意图;
图7为本说明书提供的一种用于工控系统中DO模块的多通道脉宽输出实现方法的装置结构的示意图;
图8为本说明书提供的对应于图1的电子设备的结构示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的一种用于工控系统中DO模块的多通道脉宽输出实现方法的流程示意图,包括以下步骤:
S101:接收控制命令,置位脉宽输出更新标志位。
S102:当接收到脉宽定时器发送的信号,判断所述脉宽输出更新标志位是否为置位状态,若确定所述脉宽输出更新标志位为置位状态,则根据所述控制命令,确定每个输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号,并清空所述脉宽输出更新标志位,所述脉宽定时器每隔预设时间间隔发送信号。
本说明书中涉及的用于工控系统中DO模块的多通道脉宽输出实现的方法的执行主体可以是诸如台式电脑、笔记本电脑等终端设备,也可以是服务器,下面仅以终端设备是执行主体为例,对本说明书实施例中的用于工控系统中DO模块的多通道脉宽输出实现的方法进行说明。
如今,在用于工控系统中DO模块的多通道脉宽输出实现的过程中,为了确保工控系统发出控制命令的上位机和接收控制命令的底层DO模块之间的通信稳定不中断,上位机向工控系统中的用于控制信号输出的数字信号输出(Digital Output,DO)模块发送控制命令时,可以采用冗余的通信链路,以避免通信链路中断导致的通信失败的情况,那么相应的DO模块接收到的控制命令可以是冗余的,然而,由于用于计算控制命令中电平信号输出时长的微控制器(MCU)的脉宽定时器是一种外设资源,而微控制器(MCU)的外设资源有限,现有的用于工控系统中DO模块的多通道脉宽输出实现的方法中无论是DO模块的各个输出通道同时触发脉宽定时器的计数器,即各个输出通道同时触发脉宽定时器的计数器,即,各个输出通道的脉宽计时起点一致,这种方法缺点是各个输出通道是关联的,无法独立控制各个输出通道,还是各个输出通道分别计时,即,各个输出通道分别计时,可独立控制各个输出通道,但是会由于计时起点不一致导致无法通过清空计时器计数器,都会导致输出通道输出的脉宽值会根据命令到来的时间,在±1ms的范围内波动,脉宽值控制不够精确,此外,上述两种方法在重复执行冗余控制命令或者两条命令间隔时间较短时,均会导致脉宽值重新计数,变相的延长了脉宽时间。由此可见,重复处理冗余控制命令会造成DO模块输出脉宽值计时不准确。可见现有的控制方法都无法完成各个输出通道输出的脉冲信号的准确计时,因此,无法很好的执行控制命令。
在本说明书中,终端设备的工控系统中的用于控制信号输出的DO模块可以接收到由上位机下发的控制命令。这里的上位机可以是服务器、笔记本电脑等设备,在本说明书中不做具体限定,具体来说,终端设备的工控系统可以通过工控系统中的通信模组的冗余通信链路将冗余控制命令将上位机下发的控制命令发送给上述DO模块。上述提及的DO模块接收到的由上位机下发的控制命令指的就是这里的冗余控制命令。
图2为本说明书中提供的一种控制命令的接收的流程示意图。
如图2所示,在图2中,工作站表示上述上位机,在终端设备的工控系统中的通信模组通过通信网络接收到上位机发送的控制命令之后,该通信模块(即图2中的现场可编程门阵列(Field Programmable Gate Array,FPGA)通信模块)可以按照预设的数据传输协议(即图2中的RS485数据传输协议)将接收到的上位机下发的控制命令进行更新,将更新后控制命令重新确定为控制命令,之后,通过工控系统中的通信模组的冗余通信链路将上述控制命令发送给DO模块的中的DO卡件微控制单元(Microcontroller Unit,MCU)。
而在接收到控制命令之后,终端设备则可以对该控制命令进行解析,并且置位终端设备的工控系统中的脉宽输出更新标志位,脉宽输出更新标志位用于表示终端设备是否已经根据控制命令,完成了对控制命令相关数据的更新。置位脉宽输出更新标志位指的是将置位脉宽输出更新标志位对应的数值确定为表示“终端设备已经根据控制命令,完成了对控制命令相关数据的更新”的数值。
这里的脉宽输出更新标志位具体可以取0或者1,脉宽输出更新标志位为1表示终端设备已经接收到了控制命令,但是并没有完成对控制命令相关数据的更新,脉宽输出更新标志位为0表示终端设备已经完成对控制命令相关数据的更新。置位脉宽输出更新标志位指的是将脉宽输出更新标志位设置为1。
需要注意的是,为了使得终端设备对于输出通道的脉冲信号的计时更加准确,在置位脉宽输出更新标志位,不会立刻开启各个输出通道的关于该控制命令规定的脉冲信号的输出,而是会在终端设备接收到定时器发送的信号之后,再去开启各个输出通道的关于该控制命令规定的脉冲信号的输出。这里的脉宽定时器会每隔预设时间间隔发送信号。
后续,终端设备一旦接收到脉宽定时器发送的信号,则可以判断该脉宽输出更新标志位是否为置位状态,若确定该脉宽输出更新标志位为置位状态,则根据该控制命令,确定每个输出通道以脉宽输出形式所输出的该控制命令对应的脉冲信号,并清空该脉宽输出更新标志位,这里的清空脉宽输出更新标志位可以是将脉宽输出更新标志位的值从1清空为0。
而根据该控制命令,确定每个输出通道以脉宽输出形式所输出的该控制命令对应的脉冲信号的具体方式可以是:终端设备首先根据该控制命令,确定每个输出通道以脉宽输出形式输出该控制命令对应的脉冲信号时对应的控制命令相关数据,这里的控制命令相关数据至少包括是否需要输出脉冲信号以及脉冲信号输出时长,并且终端设备针对每个输出通道,根据该输出通道对应的控制命令相关数据,确定该输出通道以脉宽输出形式所输出的该控制命令对应的脉冲信号。
例如,与该终端设备的工控系统中的DO模块存在连接的输出通道有16个,这16个输出通道分别设置有各自的通道标号,第1个输出通道是通道标号为0号的输出通道,第2个输出通道是通道标号为1号的输出通道,以此类推,第16个输出通道是通道标号为15号的输出通道。
如果上位机下发的控制命令表示:需要0号输出通道输出持续16s(秒)的脉冲信号,并且需要15号输出通道输出持续17s(秒)的脉冲信号,那么终端设备则对该控制命令进行解析,确定出0号输出通道以脉宽输出形式输出该控制命令对应的脉冲信号时对应的控制命令相关数据为:0号输出通道需要输出时长为16s的脉冲信号;15号输出通道需要输出时长为17s的脉冲信号。
图3为本说明书中提供的一种控制命令的解析的流程示意图。
如图3所示,图3中的通信链路1和通信链路2即上述提到的冗余通信链路,终端设备的DO模块可以通过通信链路1和通信链路2接收到串口数据,分别通过队列1、队列2缓存,终端设备的DO模块先后判断队列1和队列2中缓存的数据包是否为控制命令,若该数据符合预设的控制命令的协议,则根据命令配置脉宽输出的各项参数(即上述根据该控制命令,确定每个输出通道以脉宽输出形式输出该控制命令对应的脉冲信号时对应的控制命令相关数据),并将脉宽输出更新标志位设置为1,而后续终端设备一旦接收到脉宽定时器发送的信号,则可以启动对应输出通道的脉宽输出;而若该数据不符合协议,则舍弃掉该数据。
S103:接收所述脉宽定时器发送的信号,并响应于所述脉宽定时器发送的信号,根据所述每个输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号,在每个输出通道输出脉冲信号时同步更新每个输出通道对应的脉宽计数器的计数,其中,针对每个输出通道,该输出通道的脉宽计数器的计数用于表示该输出通道已经持续输出的脉冲信号的时长。
S104:遍历每个输出通道,以在当检测到所有输出通道的脉宽计数器的计数均为结束状态对应的计数时,清空各输出通道对应的脉宽定时器的计数器,其中,所述脉宽定时器的计数器用于监测需要监控的输出通道所输出的脉冲信号的时长。
终端设备可以接收该脉宽定时器发送的信号,并响应于该脉宽定时器发送的信号,根据上述确定出的每个输出通道以脉宽输出形式所输出的该控制命令对应的脉冲信号,在每个输出通道输出脉冲信号时同步更新每个输出通道对应的脉宽计数器的计数,每个输出通道的脉宽计数器的计数用于表示该输出通道已经持续输出的脉冲信号的时长。
之后,终端设备可以通过遍历每个输出通道,以在当检测到所有输出通道的脉宽计数器的计数均为结束状态对应的计数时,清空各输出通道对应的脉宽定时器的计数器,其中,该脉宽定时器的计数器用于监测需要监控的输出通道所输出的脉冲信号的时长。
为了使得各个输出通道独立输出脉冲信号,终端设备可以预先配置有脉宽定时器、脉宽结束标志位,以及针对每个输出通道,预先为该输出通道配置有脉宽计数器以及输出使能标志。
这里的脉宽定时器每隔预设时间间隔会接收到脉宽定时器的计数器发送的信号(脉宽定时器的计数器用于监测需要监控的输出通道所输出的脉冲信号的时长,只要有一个输出通道正在输出脉冲信号,那么脉宽定时器的计数器则会运行,而一旦所有输出通道都结束了脉冲信号的输出,那么此时则会将脉宽定时器的计数器的计数清零,即清空脉宽计数器的计数),一旦脉宽定时器接收到脉宽定时器的计数器发送的信号,脉宽定时器可以向终端设备发送信号。
这里的脉宽结束标志位用于表示工作状态为结束状态(即非工作状态)的输出通道的个数。上述提及的在遍历每个输出通道时,可以针对每个输出通道,当终端设备检测到该输出通道的脉宽计数器计数为结束状态对应的计数(结束状态对应的计数即上述该输出通道对应的控制命令相关数据中的脉冲信号输出时长)时,则可以更新脉宽结束标志位的数值。
这里的每个输出通道的输出使能标志用于表示该输出通道的工作状态,当该输出通道正在以脉宽输出形式输出脉冲信号时,该输出通道的输出使能标志可以取1,当该输出通道当前没有以脉宽输出形式输出脉冲信号时,该输出通道的输出使能标志可以0,相应的,当终端设备检测到该输出通道的输出使能标志为1,则可以确定该输出通道正在以脉宽输出形式输出脉冲信号,而当终端设备检测到该输出通道的输出使能标志为0,则可以确定该输出通道当前没有以脉宽输出形式输出脉冲信号。
上述提到的每个输出通道的脉宽计数器的计数用于表示该输出通道已经持续输出的脉冲信号的时长,而每当终端设备接收到该脉宽定时器发送的信号,则可以遍历每个输出通道,针对每个输出通道,当检测到该输出通道的脉宽计数器的计数大于该输出通道对应的控制命令相关数据中的脉冲信号输出时长,并且该输出通道正在输出脉冲信号时,则清空该输出通道的脉宽计数器的计数,并关闭该输出通道的脉冲信号的输出(将该输出通道所输出的脉冲信号由高电平设置为低电平)以及将该输出通道的输出使能标志确定为非工作状态对应的使能标志。
图4为本说明书中提供的一种控制命令执行时所涉及参数的示意图。
如图4所示, DO模块所连接的输出通道有N个,每个输出通道都有通道标号,各个输出通道的通道标号(即图4中通道标号,g_CHAN_Num[N])分别是0、1、…、N-1。
在图4中,0号输出通道的输出使能标志(即图4中的脉宽输出使能标志,g_CHAN_Num[N])为0,则说明该输出通道当前处于非工作状态,即该输出通道当前没有输出脉冲信号,相应的0号输出通道的脉宽计数器((即图4中的脉宽计数器,g_PulseWideHTimer[N])计数为0则表示该输出通道当前已经完成了该输出通道所需输出的控制命令中规定的时长的脉冲信号,也说明该输出通道当前处于非工作状态;
1号输出通道的输出使能标志为1,则说明该输出通道当前正处于工作状态,即该输出通道当前正在输出脉冲信号,相应的1号输出通道的脉宽计数器计数为1则表示该输出通道已经持续输出了1毫秒(millisecond,ms)的脉冲信号;
同理,2号输出通道以及N-1号输出通道的输出使能标志为0,则说明该输出通道当前没有工作,即该输出通道当前没有输出脉冲信号,该输出通道当前处于非工作状态,相应的2号输出通道以及N-1号输出通道的脉宽脉宽计数器计数为0则表示该输出通道当前已经完成了控制命令中该输出通道所需输出时长的脉冲信号。
该终端设备中存储的脉宽结束标志位(即图4中的脉宽输出结束标志位,totalNumFlag)为N-1表示有N-1个输出通道当前没有处于工作状态。该终端设备中存储的脉宽输出更新标志位(即图4中的脉宽输出更新标志位PWMupdateFlag)为0表示当前没有接收到其他新的控制命令。
此外,每当终端设备接收到该脉宽定时器发送的信号,则可以遍历每个输出通道,针对每个输出通道,当检测到该输出通道的脉宽计数器的计数大于该输出通道对应的控制命令相关数据中的脉冲信号输出时长,并且该输出通道正在输出脉冲信号时,则清空该输出通道的脉宽计数器的计数,并关闭该输出通道的脉冲信号的输出。并且,终端设备还可以遍历每个输出通道,针对每个输出通道,当检测到该输出通道正在输出脉冲信号(具体可以是当检测到该输出通道对应的输出使能标志为工作状态对应的使能标志,则确定该输出通道正在输出脉冲信号),则将该输出通道对应的输出使能标志确定为工作状态对应的使能标志,其中,该输出使能标志用于表示输出通道的工作状态。
另外,终端设备还可以遍历每个输出通道,针对每个输出通道,当检测到该输出通道的脉宽计数器计数为结束状态对应的计数时(具体可以是,当检测到更新脉宽结束标志位的数值等于所有输出通道的总数时,则确定所有输出通道的脉宽计数器计数均为结束状态对应的计数),则更新脉宽结束标志位的数值,其中,该脉宽结束标志位的数值用于表示工作状态为结束状态的输出通道的个数。
具体来说,终端设备每当接收到脉宽定时器发送的信号,终端设备则可以检测是否接收到新的控制命令。若终端设备接收到了新的控制命令,那么则可以将脉宽输出更新标志位进行置位(即将脉宽输出更新标志位从0确定为1),并且确定新的控制命令对应的控制命令相关数据,之后每个输出通道可以根据控制命令相关数据进行脉冲信号的输出,以及将将脉宽输出更新标志位清除,即将脉宽输出更新标志位从1确定为0。而若终端设备没有接收到新的控制命令,则不需要将脉宽输出更新标志位置位。
之后,终端设备可以将脉宽结束标志位的数值设置为0,并且逐个遍历每个输出通道,每当终端设备检测到一个输出通道的脉宽计数器计数为零,则可以将上述脉宽结束标志位更新,并且,若终端设备检测到该输出通道正在输出脉冲信号,则将该输出通道对应的输出使能标志确定为工作状态对应的使能标志,若终端设备确定出脉宽结束标志位的数值等于所有输出通道的总数时,则可以确定所有输出通道都处于非工作状态。
图5为本说明书中提供的一种控制命令的响应方式的示意图,可以通过图5将上述内容串联起来。
如图5所示,终端设备每当接收到脉宽定时器发送的信号(如果脉宽定时器发送前后两次信号的间隔时间是1ms,那么下述步骤可以是1ms执行一次),则可以判断脉宽输出更新标志位是否为“1”。
若脉宽输出更新标志位为“1”,则说明该终端设备接收到了新的控制命令,需要确定每个输出通道以脉宽输出形式输出该控制命令对应的脉冲信号时对应的控制命令相关数据,并且根据控制命令配置各个输出通道对外输出高低电平(即根据新的控制命令去执行各个输出通道脉冲信号的输出),以及将脉宽输出更新标志位置“0”。
而若脉宽输出更新标志位不是“1”,即脉宽输出更新标志位为“0”,那么此时说明终端设备没有接收到新的控制命令,那么也不需要重新确定每个输出通道以脉宽输出形式输出该控制命令对应的脉冲信号时对应的控制命令相关数据,即不执行任何操作。
之后,终端设备可以将脉宽结束标志位的数值设置为0,并且从通道标号为0的输出通道开始遍历各个输出通道。
终端设备可以首先判断当前输出通道(通道标号为0的输出通道)的脉宽计数器计数是否为0,若当前输出通道的脉宽计数器计数是0则说明当前输出通道在接收到控制命令之前并没有在输出脉冲信号,那么脉宽结束标志位加1;若当前输出通道(通道标号为0的输出通道)的脉宽计数器计数不是0,则说明在接收到最新控制命令之前当前输出通道正在输出脉冲信号,那么脉宽结束标志位不用加1。
之后,终端设备可以继续判断当前输出通道是否满足输出的脉冲信号为高电平且配置为脉宽输出(这里的配置为脉宽输出指的是该输出通道当前输出的是脉冲信号)。
若满足当前输出通道输出的脉冲信号为高电平且配置为脉宽输出,终端设备则可以将当前输出通道的输出使能标志确定为1。之后,若终端设备确定了脉宽结束标志位的数值等于当前的输出通道数的总和,则说明当前所有输出通道都没有处在工作状态,之后终端设备可以清空脉宽定时器的计数器,以使得下一控制命令到来时各个输出通道输出的脉冲信号可以准确的进行计时。若终端设备确定了脉宽结束标志位的数值不等于当前的输出通道数的总和,则说明还有至少一个输出通道正处在工作状态(即正在输出脉冲信号),那么终端设备不需要清空脉宽定时器的计数器。
而若不满足当前输出通道输出的脉冲信号为高电平且配置为脉宽输出,那么不需要进行任何操作。
之后,若终端设备确定已经遍历完所有输出通道,则可以结束对该控制命令的响应,若终端设备确定没有遍历完所有输出通道,则可以将通道标号加一,继续重复执行上述步骤。需要注意的是,图5中的通道指的是输出通道。
图6为本说明书中提供的一种脉宽定时器的执行逻辑的示意图。
需要注意的是图6中的步骤是每当终端设备接收到脉宽定时器发送的信号就执行一次(如果脉宽定时器发送前后两次信号的间隔时间是1ms,那么下述步骤可以是1ms执行一次),如图6所示,终端设备可以从第0通道开始遍历各个输出通道,首先,终端设备通过判断当前输出通道(第0通道)的输出使能标志是否为1,来判断当前输出通道是否正在输出脉冲信号。
若当前输出通道的脉宽输出使能标志为1,则说明当前输出通道正在输出脉冲信号,那么当前输出通道的脉宽计数器计数加1。
在将当前输出通道的脉宽计数器计数加1之后,若终端设备确定当前输出通道以脉宽形式进行脉冲信号的输出(即脉宽输出),则可以读取当前输出通道配置的脉宽设定值(即上述提及的控制命令对应的脉冲信号时长)。若再确定当前输出通道的脉宽计数(即上述提及的该输出通道对应脉宽计数器中的计数)大于脉宽设定值且当前输出为高电平(即若确定当前输出通道已经完成了控制命令中所要求的该输出通道的指定时长的脉冲信号的输出,且当前输出为高电平),那么此时则可以将当前输出通道的脉宽输出设置为低电平、将当前输出通道的脉宽输出使能标志清零、将当前输出通道的脉宽计数器计数清零。相反的,若终端设备再确定当前输出通道不满足脉宽计数大于脉宽设定值且当前输出为高电平,那么则可以直接判断各个输出通道是否遍历完全,若遍历完全,则结束,若没有遍历完全,则可以将通道标号加一,从当前输出通道(即加一后的通道标号的输出通道)开始继续执行图6中的遍历各个输出通道,从第0通道开始之后的操作。
在将当前输出通道的脉宽计数器计数加1之后,若终端设备确定当前输出通道不是以脉宽形式进行脉冲信号的输出(即脉宽输出),那么则可以直接判断各个输出通道是否遍历完全,若遍历完全,则结束,若没有遍历完全,则可以将通道标号加一,从当前输出通道(即加一后的通道标号的输出通道)开始继续执行图6中的遍历各个输出通道,从第0通道开始之后的操作。
若当前输出通道的脉宽输出使能标志不是1,那么终端设备则可以判断各个输出通道是否遍历完全,若遍历完全,则结束,若没有遍历完全,则可以将输出通道标号加一,继续重复执行上述步骤。需要注意的是,图6中的通道指的是输出通道。
从图6可以看出,每当终端设备接收到脉宽定时器发送的信号,针对每个输出通道,终端设备则可以相应的根据该输出通道的工作状态将该输出通道对应的参数相应的进行调整。
从上述方法中可以看出,在用于工控系统中DO模块的多通道脉宽输出时,终端设备可以根据接收到的控制命令,实时更新每个输出通道的控制命令相关数据,并且会为每个输出通道设有独立的脉宽计数器,在执行控制命令过程中,可以根据脉宽定时器的计时,实时同步更新相应的输出通道的脉宽计数器的计数。从而能够保证在接收到冗余控制命令或者前后间隔时间较短的两条控制命令时,工控系统中DO模块的各个输出通道的独立控制以及各个输出通道的脉宽输出的计时准确性以及实时性。
以上为本说明书的一个或多个实施的方法,基于同样的思路,本说明书还提供了相应的用于工控系统中DO模块的多通道脉宽输出实现的装置,如图7所示。
图7为本说明书提供的一种用于工控系统中DO模块的多通道脉宽输出实现方法的装置结构的示意图,包括:
接收模块701,用于接收控制命令,置位脉宽输出更新标志位;
判断模块702,用于当接收到脉宽定时器发送的信号,判断所述脉宽输出更新标志位是否为置位状态,若确定所述脉宽输出更新标志位为置位状态,则根据所述控制命令,确定每个输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号,并清空所述脉宽输出更新标志位,所述脉宽定时器每隔预设时间间隔发送信号;
响应模块703,用于接收所述脉宽定时器发送的信号,并响应于所述脉宽定时器发送的信号,根据所述每个输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号,在每个输出通道输出脉冲信号时同步更新每个输出通道对应的脉宽计数器的计数,其中,针对每个输出通道,该输出通道的脉宽计数器的计数用于表示该输出通道已经持续输出的脉冲信号的时长;
遍历模块704,用于遍历每个输出通道,以在当检测到所有输出通道的脉宽计数器的计数均为结束状态对应的计数时,清空各输出通道对应的脉宽定时器的计数器,其中,所述脉宽定时器的计数器用于监测需要监控的输出通道所输出的脉冲信号的时长。
可选地,所述判断模块702具体用于,根据所述控制命令,确定每个输出通道以脉宽输出形式输出所述控制命令对应的脉冲信号时对应的控制命令相关数据,其中,所述控制命令相关数据至少包括是否需要输出脉冲信号以及脉冲信号输出时长;针对每个输出通道,根据该输出通道对应的控制命令相关数据,确定该输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号。
可选地,所述装置还包括:
清空模块705,用于每当接收到所述脉宽定时器发送的信号,则遍历每个输出通道,针对每个输出通道,当检测到该输出通道的脉宽计数器的计数大于该输出通道对应的控制命令相关数据中的脉冲信号输出时长,并且该输出通道正在输出脉冲信号时,则清空该输出通道的脉宽计数器的计数,并关闭该输出通道的脉冲信号的输出。
可选地,所述装置还包括:
检测模块706,用于遍历每个输出通道,针对每个输出通道,当检测到该输出通道的脉宽计数器计数为结束状态对应的计数时,则更新脉宽结束标志位的数值,其中,所述脉宽结束标志位的数值用于表示工作状态为结束状态的输出通道的个数;当检测到所有输出通道的脉宽计数器计数均为结束状态对应的计数时,具体包括:当检测到更新脉宽结束标志位的数值等于所有输出通道的总数时,则确定所有输出通道的脉宽计数器计数均为结束状态对应的计数。
可选地,所述装置还包括:
确定模块707,用于遍历每个输出通道,针对每个输出通道,当检测到该输出通道正在输出脉冲信号,则将该输出通道对应的输出使能标志确定为工作状态对应的使能标志,其中,所述输出使能标志用于表示输出通道的工作状态;
当检测到该输出通道正在输出脉冲信号,具体包括:当检测到该输出通道对应的输出使能标志为工作状态对应的使能标志,则确定该输出通道正在输出脉冲信号。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种用于工控系统中DO模块的多通道脉宽输出实现的方法。
本说明书还提供了图8所示的一种对应于图1的电子设备的示意结构图。如图8所示,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的用于工控系统中DO模块的多通道脉宽输出实现的方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程信号控制设备的处理器以产生一个机器,使得通过计算机或其他可编程信号控制设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程信号控制设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程信号控制设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (10)

1.一种用于工控系统中DO模块的多通道脉宽输出实现方法,其特征在于,所述方法包括:
接收控制命令,置位脉宽输出更新标志位;
当接收到脉宽定时器发送的信号,判断所述脉宽输出更新标志位是否为置位状态,若确定所述脉宽输出更新标志位为置位状态,则根据所述控制命令,确定每个输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号,并清空所述脉宽输出更新标志位,所述脉宽定时器每隔预设时间间隔发送信号;
接收所述脉宽定时器发送的信号,并响应于所述脉宽定时器发送的信号,根据所述每个输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号,在每个输出通道输出脉冲信号时同步更新每个输出通道对应的脉宽计数器的计数,其中,针对每个输出通道,该输出通道的脉宽计数器的计数用于表示该输出通道已经持续输出的脉冲信号的时长;
遍历每个输出通道,以在当检测到所有输出通道的脉宽计数器的计数均为结束状态对应的计数时,清空各输出通道对应的脉宽定时器的计数器,其中,所述脉宽定时器的计数器用于监测需要监控的输出通道所输出的脉冲信号的时长。
2.如权利要求1所述的方法,其特征在于,根据所述控制命令,确定每个输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号,具体包括:
根据所述控制命令,确定每个输出通道以脉宽输出形式输出所述控制命令对应的脉冲信号时对应的控制命令相关数据,其中,所述控制命令相关数据至少包括是否需要输出脉冲信号以及脉冲信号输出时长;
针对每个输出通道,根据该输出通道对应的控制命令相关数据,确定该输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
每当接收到所述脉宽定时器发送的信号,则遍历每个输出通道,针对每个输出通道,当检测到该输出通道的脉宽计数器的计数大于该输出通道对应的控制命令相关数据中的脉冲信号输出时长,并且该输出通道正在输出脉冲信号时,则清空该输出通道的脉宽计数器的计数,并关闭该输出通道的脉冲信号的输出。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
遍历每个输出通道,针对每个输出通道,当检测到该输出通道的脉宽计数器计数为结束状态对应的计数时,则更新脉宽结束标志位的数值,其中,所述脉宽结束标志位的数值用于表示工作状态为结束状态的输出通道的个数;
当检测到所有输出通道的脉宽计数器计数均为结束状态对应的计数时,具体包括:
当检测到更新脉宽结束标志位的数值等于所有输出通道的总数时,则确定所有输出通道的脉宽计数器计数均为结束状态对应的计数。
5.如权利要求3所述的方法,其特征在于,所述方法还包括:
遍历每个输出通道,针对每个输出通道,当检测到该输出通道正在输出脉冲信号,则将该输出通道对应的输出使能标志确定为工作状态对应的使能标志,其中,所述输出使能标志用于表示输出通道的工作状态;
当检测到该输出通道正在输出脉冲信号,具体包括:
当检测到该输出通道对应的输出使能标志为工作状态对应的使能标志,则确定该输出通道正在输出脉冲信号。
6.一种信号控制的装置,其特征在于,包括:
接收模块,用于接收控制命令,置位脉宽输出更新标志位;
判断模块,用于当接收到脉宽定时器发送的信号,判断所述脉宽输出更新标志位是否为置位状态,若确定所述脉宽输出更新标志位为置位状态,则根据所述控制命令,确定每个输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号,并清空所述脉宽输出更新标志位,所述脉宽定时器每隔预设时间间隔发送信号;
响应模块,用于接收所述脉宽定时器发送的信号,并响应于所述脉宽定时器发送的信号,根据所述每个输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号,在每个输出通道输出脉冲信号时同步更新每个输出通道对应的脉宽计数器的计数,其中,针对每个输出通道,该输出通道的脉宽计数器的计数用于表示该输出通道已经持续输出的脉冲信号的时长;
遍历模块,用于遍历每个输出通道,以在当检测到所有输出通道的脉宽计数器的计数均为结束状态对应的计数时,清空各输出通道对应的脉宽定时器的计数器,其中,所述脉宽定时器的计数器用于监测需要监控的输出通道所输出的脉冲信号的时长。
7.如权利要求6所述的装置,其特征在于,所述判断模块具体用于,根据所述控制命令,确定每个输出通道以脉宽输出形式输出所述控制命令对应的脉冲信号时对应的控制命令相关数据,其中,所述控制命令相关数据至少包括是否需要输出脉冲信号以及脉冲信号输出时长;针对每个输出通道,根据该输出通道对应的控制命令相关数据,确定该输出通道以脉宽输出形式所输出的所述控制命令对应的脉冲信号。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:清空模块,其中,所述清空模块用于每当接收到所述脉宽定时器发送的信号,则遍历每个输出通道,针对每个输出通道,当检测到该输出通道的脉宽计数器的计数大于该输出通道对应的控制命令相关数据中的脉冲信号输出时长,并且该输出通道正在输出脉冲信号时,则清空该输出通道的脉宽计数器的计数,并关闭该输出通道的脉冲信号的输出。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~5任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~5任一项所述的方法。
CN202311124529.XA 2023-09-01 2023-09-01 用于工控系统中do模块的多通道脉宽输出实现方法 Active CN116844321B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311124529.XA CN116844321B (zh) 2023-09-01 2023-09-01 用于工控系统中do模块的多通道脉宽输出实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311124529.XA CN116844321B (zh) 2023-09-01 2023-09-01 用于工控系统中do模块的多通道脉宽输出实现方法

Publications (2)

Publication Number Publication Date
CN116844321A true CN116844321A (zh) 2023-10-03
CN116844321B CN116844321B (zh) 2024-01-09

Family

ID=88171098

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311124529.XA Active CN116844321B (zh) 2023-09-01 2023-09-01 用于工控系统中do模块的多通道脉宽输出实现方法

Country Status (1)

Country Link
CN (1) CN116844321B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316160A (zh) * 2008-06-11 2008-12-03 南京磐能电力科技股份有限公司 多节点同步采样和数据传输方法
CN104237839A (zh) * 2014-09-12 2014-12-24 国家电网公司 一种标准电能高频脉冲高保真传输系统
US10027340B1 (en) * 2012-12-31 2018-07-17 Jefferson Science Associates, Llc Method and apparatus to digitize pulse shapes from radiation detectors
CN110428600A (zh) * 2019-08-12 2019-11-08 湘潭大学 一种基于fpga的气体传感器数据采集及无线数据传输系统
CN111988756A (zh) * 2020-09-30 2020-11-24 奇点新源国际技术开发(北京)有限公司 一种多通道级联无线数据采集系统及方法
CN112700632A (zh) * 2020-12-23 2021-04-23 南方电网电力科技股份有限公司 一种多信道传输无线计量脉冲的方法和系统
CN113009817A (zh) * 2021-02-08 2021-06-22 浙江大学 一种基于控制器输出状态安全熵的工控系统入侵检测方法
CN113990059A (zh) * 2021-08-04 2022-01-28 深圳宇凡微电子有限公司 基于单片机的无线信号解码方法、装置、设备及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316160A (zh) * 2008-06-11 2008-12-03 南京磐能电力科技股份有限公司 多节点同步采样和数据传输方法
US10027340B1 (en) * 2012-12-31 2018-07-17 Jefferson Science Associates, Llc Method and apparatus to digitize pulse shapes from radiation detectors
CN104237839A (zh) * 2014-09-12 2014-12-24 国家电网公司 一种标准电能高频脉冲高保真传输系统
CN110428600A (zh) * 2019-08-12 2019-11-08 湘潭大学 一种基于fpga的气体传感器数据采集及无线数据传输系统
CN111988756A (zh) * 2020-09-30 2020-11-24 奇点新源国际技术开发(北京)有限公司 一种多通道级联无线数据采集系统及方法
CN112700632A (zh) * 2020-12-23 2021-04-23 南方电网电力科技股份有限公司 一种多信道传输无线计量脉冲的方法和系统
CN113009817A (zh) * 2021-02-08 2021-06-22 浙江大学 一种基于控制器输出状态安全熵的工控系统入侵检测方法
CN113990059A (zh) * 2021-08-04 2022-01-28 深圳宇凡微电子有限公司 基于单片机的无线信号解码方法、装置、设备及系统

Also Published As

Publication number Publication date
CN116844321B (zh) 2024-01-09

Similar Documents

Publication Publication Date Title
WO2023061348A1 (zh) 应用的容器数量调节
CN103986454A (zh) 一种数字数据信号的采样方法及装置
CN114143140A (zh) 一种数据传输系统、方法、存储介质及电子设备
CN116844321B (zh) 用于工控系统中do模块的多通道脉宽输出实现方法
CN116347623B (zh) 一种任务调度的方法、装置、存储介质及电子设备
CN117079480A (zh) 一种快速路上匝道交通信号灯的控制方法及装置
CN110908429B (zh) 一种定时器操作方法及装置
CN116737345A (zh) 分布式任务处理系统及方法、装置、存储介质以及设备
US9223573B2 (en) Data processing device and method of controlling the same
CN116107728A (zh) 一种任务执行方法、装置、存储介质及电子设备
CN111782409B (zh) 任务处理、风险识别任务处理方法、装置及电子设备
CN116893663B (zh) 一种主控异常检测方法、装置、存储介质及电子设备
US20240137411A1 (en) Container quantity adjustment for application
CN116743550B (zh) 一种分布式存储集群的故障存储节点的处理方法
CN116346268A (zh) 一种无人驾驶系统和时间同步方法
US20230418472A1 (en) Methods and apparatus to schedule memory operations
CN117041100B (zh) 一种分布式系统应用间网络包延迟检测方法和装置
WO2024092949A1 (zh) 一种数据采集的方法、装置、存储介质及电子设备
CN114384970A (zh) 一种定时器控制方法及相关设备
CN115856587A (zh) 一种芯片测试的方法、装置、存储介质及电子设备
CN117499492A (zh) 数据处理方法、装置及设备
WO2024092944A1 (zh) 一种数据处理方法、装置、存储介质及电子设备
CN117762334A (zh) 一种基于fpga的数据交互系统及方法
JP6529092B2 (ja) マルチインターバルタイマ装置、その制御方法および制御プログラム
CN114780362A (zh) 一种系统数据处理性能评估方法、装置、设备及介质

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