CN111327502B - 一种基于脉冲扩展协议的通信方法 - Google Patents
一种基于脉冲扩展协议的通信方法 Download PDFInfo
- Publication number
- CN111327502B CN111327502B CN202010137747.7A CN202010137747A CN111327502B CN 111327502 B CN111327502 B CN 111327502B CN 202010137747 A CN202010137747 A CN 202010137747A CN 111327502 B CN111327502 B CN 111327502B
- Authority
- CN
- China
- Prior art keywords
- pulse
- master station
- slave station
- station
- instruction
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004891 communication Methods 0.000 title claims abstract description 37
- 230000033001 locomotion Effects 0.000 claims abstract description 44
- 230000005540 biological transmission Effects 0.000 claims description 35
- 230000002159 abnormal effect Effects 0.000 claims description 26
- 230000006870 function Effects 0.000 abstract description 8
- 230000003993 interaction Effects 0.000 abstract description 4
- 238000001514 detection method Methods 0.000 abstract description 2
- 238000012544 monitoring process Methods 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 238000011161 development Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 239000004753 textile Substances 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- 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/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/4185—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
- G05B19/4186—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication by protocol, e.g. MAP, TOP
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Selective Calling Equipment (AREA)
Abstract
一种基于脉冲扩展协议的通信方法,具体通信方法如下:在一个控制周期内,所述主站向所述多个从站均发送多个主站数据帧,所述主站数据帧包括脉冲方向指令、脉冲数指令、脉冲急停指令以及脉冲回读指令;所述从站接收对应的当前主站数据帧,并根据所述脉冲急停指令的指示,选择性地执行所述脉冲方向指令和所述脉冲回读指令,以及,在执行完所述脉冲回读指令后,所述从站继续接收下一个主站数据帧。本发明提出的一种基于脉冲扩展协议的通信方法,以较少的总线数据量实现了主站和从站的状态交互、总线的检错以及节点的在线监测功能,为高速度、高精度、有联动和插补要求的多轴运动控制场合提供了一种低成本的经济型选择方案。
Description
技术领域
本发明涉及一种基于CAN总线的通信协议技术,具体为一种基于脉冲扩展协议的通信方法。
背景技术
近年来中国机床、纺织、印刷、包装和电子等行业的快速发展有力的带动了运动控制器的市场需求。通用运动控制器作为伺服和步进系统的核心控制装置,其市场规模正在不断扩大。根据平台不同,通用运动控制器一般可以分为PLC控制器、嵌入式运动控制器和PC-Based运动控制器三类。
一般的,通用运动控制器主要由主控单元和扩展模块组成。主控单元完成整体逻辑、运算、通讯和控制功能,扩展模块作为对主控单元硬件资源的适当补充,用来配合主控单元完成对整体设备的控制。扩展模块的种类主要包括数字量输入/输出模块、模拟量输入/ 输出模块、高速脉冲计数模块、高速脉冲模块、特殊功能模块等。
主控单元与扩展模块之间的扩展方式和协议,直接决定了整体设备控制的速度、精度和准度。特别是高速脉冲模块,应用在低成本、高速度的多轴运动场合的时候,更是对扩展方式的实时性提出了严格的要求。当扩展方式的实时性达不到要求时,高速脉冲模块只能实现简单的点位运动和启停功能,运动曲线在模块内部实现,主控单元无法实时知道脉冲模块当前的脉冲发送情况,无法与其它运动轴做联动和插补运行,限制了整体设备的速度。
在现有技术中,PLC控制器以较低的价格、丰富的主控单元和扩展模块、通用简单的编程方式,目前占据大部分市场份额。PLC主控单元和扩展模块之间的扩展方式,每家品牌都不一样,其中既有串行通讯方式,也有并行通讯方式,扩展接口的定义以及扩展协议的定义都不尽相同,其中大部分的扩展协议都没有公开,属于内部极度保密范畴。常用的扩展方式有485通讯方式和其它高速总线通讯方式。
然而,PLC主控单元通过485通讯的方式扩展脉冲模块,主控单元将本次指令需要发送的脉冲数、脉冲频率、起点脉冲频率、终点脉冲频率、加减速时间或加减速度,一次性发送到脉冲扩展单元,脉冲模块根据收到的指令开始对外发送脉冲,控制电机运行;所有脉冲发送完成之后,脉冲扩展单元会回复主控单元脉冲发送完成。在脉冲模块对外发送脉冲的过程中,主控单元无法实时知道每一细分时刻的脉冲发送情况,无法对脉冲曲线做精细规划,无法与其它运动轴做联动和插补运行,只能对单一轴做点动运行和启停控制。
此外,PLC控制器通过高速总线,例如以太网总线扩展脉冲模块,脉冲发送的曲线全部集成在主控单元中,能够保证脉冲发送的实时可控,但PLC本体控制器和扩展模块的价格过高,限制了其使用范围。另外,具有高速主线的PLC控制器,一般都会采用总线控制的方式驱动总线伺服系统运行,不会单独再开发脉冲扩展单元,但过于高昂的价格限制了其在占据大部分市场份额的中低端行业之中的应用。
除了PLC控制器,现有技术中另一种常用技术为PC-Based运动控制器,采用“PC+运动控制卡”的模式,运动控制卡配有API函数库供用户调用,用户根据需求进行二次开发 PC机界面系统。因其较为开放的系统、丰富的软硬件资源、合理的性价比,近年来在一些对立体图形和运动轨迹有特殊要求的复杂应用的场合发展迅速,例如木工雕刻等行业。其模块扩展的方式,是充分利用PC机或工控机的PCI、ISA、USB或其它接口,通过PC机自带的硬件接口扩展各种需要的模块。
然而,可扩展模块的数量有限,扩展模块的接口类型由PC机可用接口的类型决定,加大了扩展模块的开发难度,提高了模块的成本;扩展模块价格以及整体成本偏高不利于在大部分中低端行业推广;PC-Based运动控制器整体编程开发难度相对PLC来说有大幅度提高,对使用人员的专业技能提出了更高的要求,不利于大范围推广。
发明内容
为了解决上述问题,本发明提出了一种基于脉冲扩展协议的通信方法,应用于通用运动控制器,所述通用运动控制器包括主控单元和脉冲扩展单元,所述主控单元内设置有主站,所述脉冲扩展单元内设置有多个从站,其特征在于,所述主站与所述多个从站之间采用脉冲扩展协议进行通信,具体通信方法如下:
在一个控制周期内,所述主站向所述多个从站均发送多个主站数据帧,所述主站数据帧包括脉冲方向指令、脉冲数指令、脉冲急停指令以及脉冲回读指令;
所述从站接收对应的当前主站数据帧,并根据所述脉冲急停指令的指示,选择性地执行所述脉冲方向指令、脉冲数指令和所述脉冲回读指令,以及,
在执行完所述脉冲回读指令后,所述从站继续接收下一个主站数据帧。
进一步的,所述根据所述脉冲急停指令的指示,选择性地执行所述脉冲方向指令、脉冲数指令和所述脉冲回读指令,包括:
所述从站判断所述脉冲急停指令的参数值是否符合第一预设值,若是,则所述从站执行所述脉冲方向指令、所述脉冲数指令以及所述脉冲回读指令;反之,则所述从站停止执行所述脉冲急停指令和所述脉冲回读指令。
进一步的,所述从站执行所述脉冲方向指令,包括:
所述从站从脉冲数指令中解析出当前控制周期T中需要发送的脉冲数N;
所述从站判断所述脉冲方向指令的参数值是否满足第二预设值,若是,则所述从站执行所述脉冲方向指令以控制目标设备执行向第一方向运动N个脉冲数;若否,则,
所述从站判断所述脉冲方向指令的参数值是否满足第三预设值,若是,则所述从站执行所述脉冲方向指令以控制目标设备执行向第二方向运动N个脉冲数;
其中,所述第二预设值不同于所述第三预设值,所述第一方向不同于所述第二方向。
进一步的,其特征在于,所述从站执行所述脉冲回读指令,包括:
所述从站判断所述脉冲回读指令的参数值是否满足第四预设值,若是,则所述从站执行所述脉冲回读指令,从站发送从站数据帧至所述主站,向主站反馈从站的实际工作状态,所述从站数据帧包括实际脉冲发送信息和实际脉冲控制信息。
进一步的,在所述从站执行所述脉冲回读指令以将所述从站的实际工作状态发送至所述主站之后,所述方法还包括:
所述主站判断所述实际脉冲控制信息是否符合第七预设值,若否,则所述主站调整其向所述从站发送的主站数据帧,以使得所述实际脉冲控制信息与所述第七预设值相符合。
进一步的,所述在执行完所述脉冲回读指令后,所述从站继续接收下一个主站数据帧,包括:
所述主站判断所述实际脉冲发送信息是否符合第五预设值,若是,则所述主站向所述从站继续发送所述下一个主站数据帧;反之,则所述主站停止向所述从站继续发送所述下一个主站数据帧。
进一步的,在所述从站执行所述脉冲回读指令以将所述从站的实际工作状态发送至所述主站之后,所述方法还包括:
所述主站判断所述实际脉冲方向信息是否符合第八预设值,若否,则所述主站调整其向所述从站发送的主站数据帧,以使得所述实际脉冲方向信息与所述第八预设值相符合。
进一步的,所述从站接收对应的当前主站数据帧,包括:
所述从站判断其自身的ID信息与所述当前主站数据帧所对应的当前ID信息是否一致,若是,则所述从站判定所述当前主站数据帧与其相对应,并接收所述当前主站数据帧。
进一步的,在所述主站向所述多个从站均发送多个主站数据帧之前,所述方法还包括:
所述主站向所述多个从站发送定时帧;
至少一个所述从站接收到所述定时帧,则判定所述主站处于正常工作状态;
响应于预设一段时间各所述从站均未接收到所述定时帧,则判定所述主站处于非正常工作状态,从站停止工作。
一种通用控制器,所述通用运动控制器包括主控单元和脉冲扩展单元,所述主控单元内设置有主站,所述脉冲扩展单元内设置有多个从站,其特征在于,所述主站与所述多个从站之间采用脉冲扩展协议进行通信,具体通信方法采用上述通信方法。
本发明提出了一种基于脉冲扩展协议的通信方法通过一种基于CAN总线的实时高速脉冲扩展协议,以较少的总线数据量实现了主站和从站的状态交互、总线的检错以及节点的在线监测功能,有利于提高总线速度、增加总线上扩展模块的数量。以极低的成本、较少的总线数据量、较高的总线速率、较高的脉冲频率和较多的可扩展模块数量,实现了所有脉冲口之间的同步实时控制,进一步的,为高速度、高精度、有联动和插补要求的多轴运动控制场合提供了一种低成本的经济型选择方案。
附图说明
图1为实施例1中提出的一种基于脉冲扩展协议的通信方法的流程示意图;
图2为实施例1中主站数据帧的数据区数据格式;
图3为实施例1中从站数据帧的数据区数据格式;
图4为实施例1中总线周期示意图。
具体实施方式
本实施例提出了一种基于脉冲扩展协议的通信方法,所述脉冲扩展协议为基于CAN总线的实时高速脉冲扩展协议。所述通信方法在CAN总线协议的基础上改进了通用运动控制器中主控单元与脉冲扩展单元之间的协议。本实施例中的硬件结构包括通用运动控制器的主控单元和脉冲扩展单元,所述主控单元内设置有主站,所述脉冲扩展单元内设置有多个从站,通过脉冲扩展协议实现主站与从站之间的通信,从而实现通用运动控制器的主控单元与脉冲扩展单元之间的通信,通过脉冲扩展单元扩展通用运动控制器的控制功能,进一步实现对目标设备的控制。所述目标设备主要指电机等设备。
本实施例中所使用的脉冲扩展单元具有12路通用输入接口、8路通用输出接口、2路 250KHz高速脉冲输出和可插拔式端子。输入输出电路均采用光电隔离和软硬件滤波技术,有效隔离掉外部电路的干扰,提高了系统的可靠性。高速脉冲电路部分单独内置隔离电源,进一步提升了脉冲输出的抗干扰性。
本实施例中提出的一种基于脉冲扩展协议的通信方法,如图1所示,具体包括以下步骤:
S01:主站向从站发送定时帧。主站通过高精度定时器,定时向从站发送定时帧,本实施例中,所述定时帧ID为0x80。
S02:所述从站根据所述定时帧判断主站的工作状态,所述主站的工作状态为主站工作正常或站工作不正常。至少一个从站接收主站发送的定时帧,则判定所述主站处于正常工作状态。
在本实施例中,从站通过高精度定时器来实现对定时帧的判断。将主站发送的定时帧作为主站的心跳信号,从站上线之后,从站内部开启高精度定时器,用于对定时帧进行处理。当至少一个从站接收到主站发送的定时帧的时候,则从站判断主站工作正常,即表明主站功能正常;响应于预设一段时间各所述从站均未接收到所述定时帧,则判定所述主站处于非正常工作状态,表明主站掉线并。所述预设一段时间可以根据具体的使用情况设定,例如设定为当前控制周期T。
S03:若主站的工作状态为主站工作正常,从站复位定时器并重新开始定时,并继续执行步骤S1;若主站的工作状态为主站工作不正常,则从站停止工作。向主站发送报警信息,主站接收到报警信息后复位主站,复位后重复执行步骤S01。
S1:主站向从站发送主站数据帧。在一个控制周期内,所述主站向所述多个从站均发送多个主站数据帧,所述主站数据帧包括脉冲方向指令、脉冲数指令、脉冲急停指令以及脉冲回读指令。
在本实施例中,由于脉冲扩展单元使用2路高速脉冲接口,即分别使用2路两个字节即16bits的数据格式,即主站分别发送2个主站数据帧至2路高速脉冲接口。但是由于2路高速脉冲接口接收到的数据状态相同,即2路高速脉冲接口分别收到2路主站发送的相同的主站数据帧。
所述主站数据帧为主站向从站传递信息的载体,所述主站数据帧包括校验区和主站数据区;所述从站校验区主要用于从站在接收总站发送的主站数据帧时判断是否接收,本实施例中,所述从站校验区为从站ID信息;所述主站数据区主要为主站向从站发送的所需接收的信息,所述信息包括数据和命令。在本实施例中,所述数据区使用两个字节即16bits 的数据格式,为了更好的收发数据,本实施例中脉冲扩展单元使用2路高速脉冲接口,即分别使用2路两个字节即16bits、共4个字节即32bits数据的数据格式进行数据交互。
所述主站数据区的数据格式具体如图2所示,图中,5代表主站向脉冲扩展单元第一路脉冲口的发送的主站数据帧5,6代表主站向脉冲扩展单元第二路脉冲口的发送的主站数据帧6,由于5和6的格式完全一样而且独立,下面只对5的格式作详细说明。主站数据帧5为两个字节即16bits,MSB代表16位数据的最高位,LSB代表了16位数据的最低位。主站数据帧5主要包括脉冲方向指令1、脉冲急停指令2、脉冲回读指令3、脉冲数指令4、从站报警复位指令8。
所述脉冲方向指令1主要用于控制目标设备的工作状态。所述从站判断所述脉冲方向指令的参数值是否满足第二预设值,若是,则所述从站执行所述脉冲方向指令以控制目标设备执行第一方向的运动;若否,则所述从站判断所述脉冲方向指令的参数值是否满足第三预设值,若是,则所述从站执行所述脉冲方向指令以控制目标设备执行第二方向的运动;其中,所述第二预设值不同于所述第三预设值,所述第一方向不同于所述第二方向。
在本实施例中,第二预设值为0,第一运动方向为目标设备正向运动;第三预设值为1,第二运动方向为目标设备反向运动。即当脉冲方向指令1中的数值为0时,从站向目标设备发送正向控制信息,当脉冲方向指令1中的数值为1时,从站向目标设备发送反向控制信息。在本实施例中,以控制电机为例,当脉冲方向指令1中的数值为0时,从站向目标设备发送电机正转控制信息;当脉冲方向指令1中的数值为1时,从站向目标设备发送电机反转控制信息。
所述脉冲急停指令2主要用于控制目标设备紧急停止运行。所述从站判断所述脉冲急停指令的参数值是否符合第一预设值,若是,则所述从站执行所述脉冲方向指令、脉冲数指令以及所述脉冲回读指令,所述从站执行所述脉冲方向指令时,结合所述脉冲数指令共同执行;反之,则所述从站停止执行所述脉冲急停指令和所述脉冲回读指令。在本实施例中,所述第一预设值为0,以控制电机为例,当脉冲急停指令2中的数值为0时,从站忽略此位、正常工作,即继续执行接收的脉冲指令;当脉冲急停指令2中的数值为1时,从站当前脉冲口立即停止发送脉冲,即从站停止向电机发送任何控制信息,使电机紧急停转。
所述脉冲回读指令3主要用于控制从站向主站发送实际工作状态信息,让主站可以随时知道从站对目标设备是否成功发送了设备控制命令,了解从站和目标设备的工作状态。所述从站判断所述脉冲回读指令3的参数值是否满足第四预设值,若是,则所述从站执行所述脉冲回读指令,从站发送从站数据帧至所述主站,向主站反馈从站的实际工作状态,所述从站数据帧包括实际脉冲发送信息和实际脉冲控制信息。在本实施例中,所述第四预设值为1。即当脉冲回读指令3中的数值为0时,从站忽略此位、正常工作;当脉冲回读指令3中的数值为1时,从站立即返回当前脉冲口脉冲发送的状态并继续执行脉冲发送指令,即从站向主站发送从站数据帧,主站通过从站数据帧中的控制状态信息解析从站的脉冲发送控制状态,并同时继续保持正常的工作状态、向目标设备发送控制信息。
所述脉冲数指令4主要用于传递当前控制周期T中需要发送的脉冲数N。在本实施例中,所述脉冲数N的最大数值限制为250,也就是限制从站脉冲口的最大发送频率为250KHz。
所述从站报警复位指令8主要用于控制从站复位,当主站接收到从站的报警信息并做相应的处理之后,会通过从站报警复位指令8来控制从站复位自身的报警状态,将从站复位为正常状态。所述从站判断所述报警复位指令是否满足第六预设值,若是,则从站执行所述报警复位指令,从站复位从站数据帧中的报警信息。在本实施例中,所述第六预设值为1,即当从站报警复位指令8中的数值为0时,从站忽略此位、正常工作,不进行复位工作;当从站报警复位指令8中的数值为1时,从站对自身的报警信息进行复位处理,即从站将从站数据帧复位为预设值或者从站标准工作信息。在本实施例中,即为将从站心跳位i、第一路高速脉冲接口脉冲发送状态位a、第二路高速脉冲接口脉冲发送状态位b、第一路高速脉冲接口频率状态位c、第二路高速脉冲接口频率状态位d、从站存储器状态位e、从站电压状态位f、第一路高速脉冲接口脉冲方向状态位g、第二路高速脉冲接口脉冲方向状态位h复位为预设值或者从站标准工作信息。
本实施例中,由于脉冲扩展单元使用2路高速脉冲接口,即分别使用2路两个字节即 16bits的数据格式,即2路高速脉冲接口分别从主站接收数据,共接收2路主站数据帧,且从站接收的2路主站数据帧的数据格式相同,均采用上述介绍的数据格式,即主站数据帧包括脉冲方向指令1、脉冲急停指令2、脉冲回读指令3、脉冲数指令4、从站报警复位指令8。
S2:所述从站接收对应的当前主站数据帧,并根据所述脉冲急停指令的指示,选择性地执行所述脉冲方向指令。
所述步骤S2具体为:
S21:所述从站判断其自身的ID信息与所述当前主站数据帧所对应的当前ID信息是否一致,若是,则所述从站判定所述当前主站数据帧与其相对应,并接收所述当前主站数据帧。
从站收到主站发送的主站数据帧,比对主站数据帧中的校验区内容是否匹配,若匹配,则从站接收所述主站数据帧,若不匹配,则从站不接收所述主站数据帧。本实施例中,从站通过滤波器来实现校验区匹配度的判断,从站CAN接口硬件配置成只能接收主站定时帧以及与本站ID符合的数据帧,自动过滤掉与本站无关的数据帧。由于本实施例中校验区为从站ID信息,即通过比对从站的ID信息是否相同来判断从站是否接收该主站数据帧,若主站数据帧中的从站ID信息与从站滤波器中设置的ID相匹配,则从站接收主站数据帧,否则,则从站不接收主站数据帧。
需要说明的是,本实施例中,由于脉冲扩展单元使用2路高速脉冲接口,分别使用2路两个字节即16bits的数据格式,即脉冲扩展单元中的从站通过2路高速脉冲接口分别接收主站发送的主站数据帧。因此,在上文所述的通信方法中,主站分别发送2个定时帧和2个主站数据帧至从站的2路高速脉冲接口。但是由于2路高速脉冲接口接收到的数据状态相同,即2路高速脉冲接口分别收到2路主站发送的相同的定时帧和主站数据帧,因此,2 路高速脉冲接口虽然分别从主站数据帧中解析数据,但由于主站数据帧相同,因此可以解析出相同的数据和命令。上文近说明了主站与从站通过1路高速脉冲接口发收主站数据帧,主站与从站通过而从站另一路高速脉冲接口发收主站数据帧的过程与上述内容完全相同,不再赘述。
S22:所述从站判断所述脉冲急停指令的参数值是否符合第一预设值,若是,则所述从站执行所述脉冲方向指令,所述从站执行所述脉冲方向指令时,结合所述脉冲数指令共同执行;反之,则所述从站停止执行所述脉冲急停指令。所述步骤S22具体为:
S221:从站判断所述脉冲急停指令2的参数值是否符合第一预设值,本实施例中,所述第一预设值为0。若脉冲急停指令2的数值为1,则从站当前脉冲口立即停止发送脉冲,即从站停止向目标设备发送控制信息,使目标设备紧急停止工作,本实施例中,为使电机紧急停转;若脉冲急停指令2的数值为0,则继续执行步骤S222。
S222:从站解析脉冲数指令4中的信息,得到当前控制周期T中需要发送的脉冲数N。
在本实施例中,所述脉冲数N的最大数值限制为250,也就是限制从站脉冲口的最大发送频率为250KHz。此外,由于脉冲扩展单元使用2路高速脉冲接口,即分别使用2路两个字节即16bits的数据格式,即主站分别发送2个主站数据帧至2路高速脉冲接口。但是由于2路高速脉冲接口接收到的数据状态相同,即2路高速脉冲接口分别收到2路主站发送的相同的主站数据帧,因此,2路高速脉冲接口虽然分别从主站数据帧中解析数据,但由于主站数据帧相同,因此可以解析出相同的当前控制周期T和需要发送的脉冲数N。
S223:从站判断需要发送的脉冲数N是否在预设的标准范围内。若需要发送的脉冲数N 在预设的脉冲数范围内,则继续执行步骤S224;若需要发送的脉冲数N不在预设的脉冲数范围内,则从站不执行当前的主站数据帧,并向主站发送从站数据帧,反馈频率状态错误。
由于从站接收到的需要发送的脉冲数N不在预设的标准范围内,即当前主站发送的主站数据帧有错误,从站通过反馈一个从站数据帧来向主站反馈所述错误,所述从站数据帧中,所述第一路高速脉冲接口频率状态位c的数值为0,用于代表从站接收到的频率超限、需要发送的脉冲数N数值有错误,主站接收到所述从站数据帧后重新进行运算,修改错误后重新发送主站数据帧。本实施例中,所述预设的脉冲数范围为(0,250]中的整数。
S224:所述从站判断所述脉冲方向指令的参数值是否满足第二预设值,若是,则所述从站执行所述脉冲方向指令以控制目标设备执行第一方向的运动,且根据所述需要发送的脉冲数N确定在第一方向运动的时间;若否,则所述从站判断所述脉冲方向指令的参数值是否满足第三预设值,若是,则所述从站执行所述脉冲方向指令以控制目标设备执行第二方向的运动,且根据所述需要发送的脉冲数N确定在第一方向运动的时间;其中,所述第二预设值不同于所述第三预设值,所述第一方向不同于所述第二方向。
在本实施例中,第二预设值为0,第一运动方向为目标设备正向运动;第三预设值为1,第二运动方向为目标设备反向运动。当脉冲方向指令1中的数值为0时,从站向目标设备发送正向运动控制指令、当前控制周期T中需要发送的脉冲数N,控制所述目标设备在正向运动N个脉冲数;当脉冲方向指令1中的数值为1时,从站向目标设备发送反向运动控制指令、当前控制周期T中需要发送的脉冲数N,控制所述目标设备在反向运动N个脉冲数。实施例中,由于所述目标设备为电机,因此当脉冲方向指令1中的数值为0时,从站向目标设备发送电机正转控制信息、当前控制周期T和需要发送的脉冲数N,控制电机正转;当脉冲方向指令1中的数值为1时,从站向目标设备发送电机反转控制信息、当前控制周期T 和需要发送的脉冲数N,控制电机反转。
在本实施例中,脉冲扩展单元通过从站向目标设备发送控制脉冲,从而实现对目标设备的控制,具体的脉冲通信方法如下:
一个脉冲由占空比为50%的高低电平组成。从站内部设计有高速FPGA脉冲计数单元、运算单元和发送单元,从站主频f为100MHz,定时周期t为10ns,即定时精度为10ns,从站对外发送脉冲的最高频率设计为500KHz。所述高速FPGA脉冲计数单元主要用于对发送单元发送的脉冲个数和脉冲周期进行定时计数,所述不仅仅对脉冲个数进行计数,还对脉冲周期进行定时计数。所述发送单元用于向目标设备发送控制脉冲,发送单元以定时周期t 为周期向目标设备发送脉冲,本实施例中,所述目标设备为电机;所述运算单元主要用于对脉冲周期进行精准处理,具体为判断脉冲个数与控制周期之间的数量关系:当脉冲个数能被控制周期整除时,当前控制周期的所有脉冲均分整个控制周期;当脉冲个数不被控制周期整除时,运算单元将所有脉冲拆成两部分进行处理,两部分脉冲的脉冲周期只相差一个定时周期t。在脉冲急停指令2中的数值为0的前提下,当从站收到主站的主站数据帧时,从站从主站数据帧中解析出脉冲指令,即当前控制周期T需要发送的脉冲数N,从站根据协议将脉冲指令拆分成当前控制周期T内的脉冲个数N以及脉冲方向,由此可得每个脉冲所占用的平均时间为T/N,其中T为正整数,单位为ms。将T转化为定时周期t的倍数 M=T/t=100000T。
当M能被N整除时,可得每个脉冲的计数周期T1=M/N,高电平计数周期与低电平计数周期均为T1/2,脉冲发送单元以T1/2为计数周期从0开始计数,每次计数到达T1/2时内部复位重新开始计数,同时对脉冲输出口进行翻转处理,每两次翻转对当前脉冲发送个数做加1处理。当脉冲发送个数等于N时,从站内部所有计数器复位,并置位脉冲发送状态位,表明本次脉冲发送完成。
当M不能被N整除时,将脉冲个数N拆分为两部分N1和N2进行发送之前的预处理,N1和N2均为小于N的正整数,其中N2为M被N整除的余数,记为N2=M%N,相应的N1=N-N2。N1部分脉冲的计数周期为T1,N2部分脉冲的计数周期为T2,其中T1为M被N整除的商,记为T1=M/N,令T2=T1+1。脉冲发送单元先以T2/2为计数周期对N2部分的脉冲进行发送处理,脉冲发送单元以T2/2为计数周期从0开始计数,每次计数到达T2/2时内部复位重新开始计数,同时对脉冲输出口进行翻转处理,每两次翻转对当前脉冲发送个数做加1处理。当脉冲发送个数等于N2时,再以T1/2为计数周期对N1部分的脉冲进行发送处理。当 N1部分脉冲发送完成之后,从站内部所有计数器复位,并置位脉冲发送状态位,表明本次脉冲发送完成。当M不能被N整除时,由于计数器无法对浮点数进行处理,必然造成输出脉冲的频率与实际需要的数值有偏差,最终造成电机运转速度不准确。通过对脉冲计数、运算和发送单元做上述处理,避免了由于脉冲周期不被主频整除引起的脉冲发送频率不准确的情况,保证了电机速度运转的平稳性。
S3:所述从站接收对应的当前主站数据帧,并根据所述脉冲急停指令的指示,选择性地执行所述脉冲回读指令,在执行完所述脉冲回读指令后,所述从站继续接收下一个主站数据帧。需要注意的是,步骤S2和步骤S3为并列关系,二者之前无确定的先后顺序,即可以先执行步骤S2后执行步骤S3,也可先执行步骤S3后执行步骤S2,也可同时执行步骤S2和步骤S3。所述S3具体为:
S31:所述从站判断所述脉冲急停指令的参数值是否符合第一预设值,若是,则所述从站执行所述脉冲回读指令;反之,则所述从站停止执行所述脉冲回读指令。
本实施例中,所述第一预设值为0。若脉冲急停指令2的数值为1,则从站停止执行所述脉冲回读指令,即从站停止向主站反馈从站数据帧;若脉冲急停指令2的数值为0,则从站执行所述脉冲回读指令。
S32:从站根据状态回读命令,执行脉冲回读指令,判断是否向主站发送从站数据帧。
所述从站判断所述脉冲回读指令3的参数值是否满足第四预设值,若是,则所述从站执行所述脉冲回读指令,从站发送从站数据帧至所述主站,向主站反馈从站的实际工作状态,所述从站数据帧包括实际脉冲发送信息和实际脉冲控制信息。在本实施例中,所述第四预设值为1。即当脉冲回读指令3中的数值为0时,从站忽略此位、正常工作;当脉冲回读指令3中的数值为1时,从站立即返回当前脉冲口脉冲发送的状态并继续执行脉冲发送指令,即从站向主站发送从站数据帧,主站通过从站数据帧中的控制状态信息解析从站的脉冲发送控制状态,并同时继续保持正常的工作状态、向目标设备发送控制信息。
所述从站数据帧7为从站向主站传递信息的载体。所述从站数据帧7由两个字节即16bits的数据组成,用来表示脉冲扩展单元的各种状态,其中,MSB代表16位数据的最高位,LSB代表了16位数据的最低位,所述从站数据帧7的数据格式具体如图3所示。所述从站数据帧7中16bits的数据位中未用到的数据位,作为扩展报警状态预留使用,可根据具体的使用情况进行扩展。
所述从站数据帧包括校验区和主站数据区;所述从站校验区为从站ID信息。由于主站 CAN接口硬件配置成能接收所有CAN总线上从站节点的数据帧,即主站对从站发送的从站数据帧全部接收,无需校验是否匹配,因此,从站数据帧的校验区并不用于主站验证是否接收当前从站数据帧,而是起到向主站反馈ID信息的作用,即主站根据从站数据帧校验区中的ID信息得知反馈从站实际工作状态的是多个从站中的哪一个。
所述从站数据帧7包括实际脉冲发送信息、实际脉冲控制信息、从站实际工作信息和实际脉冲方向信息。所述实际脉冲发送信息包括第一路高速脉冲接口脉冲发送状态位a和第二路高速脉冲接口脉冲发送状态位b;所述实际脉冲控制信息包括第一路高速脉冲接口频率状态位c和第二路高速脉冲接口频率状态位d;所述从站实际工作信息包括从站存储器状态位e和从站电压状态位f;所述实际脉冲方向信息包括第一路高速脉冲接口脉冲方向状态位g和第二路高速脉冲接口脉冲方向状态位h。此外,所述从站数据帧中还包括从站心跳位i。
所述从站心跳位i用于主站判断从站的工作状态。在本实施例中,所述从站心跳位i 设置为数值固定为1,此时从站在线、工作状态正常;当i的状态变为0并持续一段固定时间,主站可据此判断从站不在线,即所述从站工作状态不正常并做相应的报警处理,所述一段固定的时间可以根据具体的使用情况设定,例如设定为当前控制周期T,或者设定为 nT(n=1,2…)。所述相应的报警处理为主站通过从站数据帧中的从站心跳位i来判断从站状态,若从站不在线则主站发出报警。
所述第一路高速脉冲接口脉冲发送状态位a用于主站判断从站第一路高速脉冲接口的工作状态,即从站的第一路高速脉冲接口脉冲是否全部发送完成。在本实施例中,当所述第一路高速脉冲接口脉冲发送状态位a的数值为1的时候,表示对应的脉冲口当前脉冲全部发送完成,可继续接收主站数据帧;当数值为0的时候,表示对应的脉冲口正在发送脉冲,当前不能发送新的脉冲,主站不能发送新的主站数据帧,不能发送新的脉冲指令。
所述第二路高速脉冲接口脉冲发送状态位b用于主站判断从站第二路高速脉冲接口的工作状态,即从站的第二路高速脉冲接口脉冲是否全部发送完成。在本实施例中,当所述第二路高速脉冲接口脉冲发送状态位b的数值为1的时候,表示对应的脉冲口当前脉冲全部发送完成,可继续接收主站数据帧;当数值为0的时候,表示对应的脉冲口正在发送脉冲,当前不能发送新的脉冲,主站不能发送新的主站数据帧,不能发送新的脉冲指令。
所述第一路高速脉冲接口频率状态位c用于主站判断从站第一路高速脉冲接口的频率工作状态,即从站的第一路高速脉冲接口的频率是否超限。在本实施例中,所述第一路高速脉冲接口频率状态位c为1的时候,代表频率未超限、频率状态正常;当数值为0的时候,代表频率超限、频率状态不正常,表征出相应的报警状态,通知主站进行检查和处理,同时对本条指令不予执行,等待主站处理完成。在本实施例中,所述频率状态不正常指的是,当从站解析主站数据帧中脉冲指令之后,获得的需要发送的脉冲数N大于250或者等于0。
所述第二路高速脉冲接口频率状态位d用于主站判断从站第二路高速脉冲接口的频率工作状态,即从站的第二路高速脉冲接口的频率是否超限。在本实施例中,所述第二路高速脉冲接口频率状态位d为1的时候,代表频率未超限、频率状态正常;当数值为0的时候,代表频率超限、频率状态不正常,表征出相应的报警状态,通知主站进行检查和处理,同时对本条指令不予执行,等待主站处理完成。在本实施例中,所述频率状态不正常指的是,当从站解析主站数据帧中脉冲指令之后,获得的需要发送的脉冲数N大于250或者等于0。
所述从站存储器状态位e用于主站判断从站的存储器工作状态是否正常,所述存储器为脉冲扩展单元内部设置的存储器,用于存储脉冲扩展单元中的工作数据,包括存储从站的工作数据。在本实施例中,所述从站存储器状态位e为0时表示存储器工作状态正常,为1时表示存储器工作状态异常。所述存储器工作状态异常指的是存储器不能正确写入或写出数据。所述脉冲扩展单元上电时会对存储器做校验处理,若校验成功则复位e,使e的数值为0,若校验失败,则置位e为1,并通知主站对模块硬件进行检查和维修。
所述从站电压状态位f用于主站判断从站的电压工作状态是否正常,所述从站电压为所述脉冲扩展单元当前运行过程中的工作电压。在本实施例中,所述从站电压状态位f为0 时表示电压正常,为1时表示电压异常。所述电压异常指的是电压不在预设的电压范围内,所述预设的电压范围可根据实际情况进行设置,本实施例中,预设的电压范围为28V-19V。运行过程中脉冲扩展单元一直对自身供电电压进行监控,当电压高于28V或者低于19V时,置位f,即从站电压状态位f从0跳变为1,否则复位f。
所述第一路高速脉冲接口脉冲方向状态位g主要用于主站判断从站在脉冲发送过程中脉冲方向是否正常,是否发生突变。在本实施例中,第一路高速脉冲接口脉冲方向状态位g 为0时表示第一路高速脉冲接口脉冲方向正常,为1时表示脉冲方向异常、发生突变。
所述第二路高速脉冲接口脉冲方向状态位h主要用于主站判断从站在脉冲发送过程中脉冲方向是否正常,是否发生突变。在本实施例中,第二路高速脉冲接口脉冲方向状态位h 为0时表示第二路高速脉冲接口脉冲方向正常,为1时表示脉冲方向异常、发生突变。
正常脉冲发送过程中,当连续两个总线周期的脉冲方向指令因为总线数据被干扰或者主站误判等原因不相同时,置位相应的g或者h位,通知主站进行检查和处理,同时对本条指令不予执行;当连续两个总线周期的脉冲方向指令相同时复位相应状态位。对脉冲指令方向进行监控和预警,有效避免了电机在运转过程中因为突然换向造成的机械振动、电机寿命下降等不利后果。
所述总线周期为主站连续两次发出定时帧之间的间隔时间,由前一个定时帧起,由后一个定时帧止,总线周期主要是指主站和从站之间交互数据和状态的时间,是内部的通讯周期。所述控制周期为指主站控制目标设备的时间,是外部的控制节拍,所述目标设备可为电机、传感器、执行器等设备。所述总线周期和所述控制周期可根据实际使用情况具体设定,在本实施例中,所述总线周期与所述控制周期在数值上相等,均为T。
本实施例中,由于脉冲扩展单元使用2路高速脉冲接口,即分别使用2路两个字节即16bits的数据格式,因此,返回的从站数据帧中需要能体现出2路高速脉冲接口的状态,即分别用第一路高速脉冲接口脉冲发送状态位a和第二路高速脉冲接口脉冲发送状态位b、第一路高速脉冲接口频率状态位c和第二路高速脉冲接口频率状态位d、第一路高速脉冲接口脉冲方向状态位g和第二路高速脉冲接口脉冲方向状态位h来表征2路高速脉冲接口的状态。
S4:在执行完所述脉冲回读指令后,所述从站继续接收下一个主站数据帧。
S5:主站根据从站数据帧判断从站的实际工作状态,调整向从站发送的主站数据帧。
由于本实施例中将将主站CAN接口硬件配置成能接收所有CAN总线上从站节点的数据帧,因此主站可以接收所有从站发送的从站数据帧。由于从站数据帧反应了从站对目标设备的控制状态和从站本身的工作状态,因此主站可以根据从站的从站数据帧判断从站实际脉冲发送信息、实际脉冲控制信息、从站实际工作信息和实际脉冲方向信息,来调整向从站发送从站数据帧,即当从站数据帧中存在非正常状态时,主站停止发送从站数据帧,排查非正常状态后再继续发送主站数据帧,当从站数据帧中不存在非正常状态时,主站正常向从站发送主站数据帧。
步骤S5具体如下所示:
S50:判断从站心跳位i是否符合第九预设值。若是,则主站向从站发送所述下一个主站数据帧,反之,则所述主站停止向所述从站继续发送所述下一个主站数据帧。
在本实施例中,所述第九预设值为1,即若从站心跳位i为1,则从站工作状态正常,主站正常向从站发送所述下一个主站数据帧;若从站心跳位i为0,则从站工作状态不正常,主站停止向所述从站发送主站数据帧,并发出报警。
S51:所述主站判断所述实际脉冲发送信息是否符合第五预设值,若是,则所述主站向所述从站继续发送所述下一个主站数据帧;反之,则所述主站停止向所述从站继续发送所述下一个主站数据帧。具体为:
S511:判断第一路高速脉冲接口脉冲发送状态位a是否符合第五预设值,在本实施例中,所述第五预设值为1。若第一路高速脉冲接口脉冲发送状态位a数值为1,则第一路高速脉冲接口当前脉冲全部发送完成,主站继续正常向从站发送主站数据帧;若第一路高速脉冲接口脉冲发送状态位a数值为0,则第一路高速脉冲接口正在发送脉冲,暂时不能接收新的脉冲发送控制命令,即暂时不能接受新的主站数据帧,主站暂停向所述从站发送主站数据帧。
S512:判断第二路高速脉冲接口脉冲发送状态位b是否符合第五预设值,在本实施例中,所述第五预设值为1。若第二路高速脉冲接口脉冲发送状态位b数值为1,则第二路高速脉冲接口当前脉冲全部发送完成,主站继续正常向从站发送主站数据帧;若第二路高速脉冲接口脉冲发送状态位b数值为0,则第二路高速脉冲接口正在发送脉冲,暂时不能接收新的脉冲发送控制命令,即暂时不能接受新的主站数据帧,主站暂停向所述从站发送主站数据帧。
S52:所述主站判断所述实际脉冲控制信息是否符合第七预设值,若否,则所述主站调整其向所述从站发送的主站数据帧,以使得所述实际脉冲控制信息与所述第七预设值相符合。具体为:
S521:从站判断第一路高速脉冲接口频率状态位c是否符合第七预设值,在本实施例中,所述第七预设值为1。从站第一路高速脉冲接口从主站数据帧中解析出需要发送的脉冲数N,若需要发送的脉冲数N在预设的脉冲数范围内,则所述第一路高速脉冲接口频率状态位c的数值为1,符合第七预设值,频率未超限,第一路高速脉冲接口频率状态正常,从站执行当前接收到的主站数据帧;若需要发送的脉冲数N不在预设的脉冲数范围内,则所述第一路高速脉冲接口频率状态位c的数值为0,不符合第七预设值,频率超限,第一路高速脉冲接口频率状态不正常,从站拒绝执行当前主站数据帧,主站停止向所述从站发送主站数据帧,并发出报警,主站调整其向所述从站发送的主站数据帧,重新向从站发送主站数据帧,以使得第一路高速脉冲接口频率状态位c为1。
在本实施例中,所述预设的脉冲数范围为(0,250]中的整数。
S522:从站判断第二路高速脉冲接口频率状态位d是否符合第七预设值,在本实施例中,所述第七预设值为1。从站第二路高速脉冲接口从主站数据帧中解析出需要发送的脉冲数N,若需要发送的脉冲数N在预设的脉冲数范围内,则所述第二路高速脉冲接口频率状态位d的数值为1,符合第七预设值,频率未超限,第二路高速脉冲接口频率状态正常,从站执行当前接收到的主站数据帧;若需要发送的脉冲数N不在预设的脉冲数范围内,则所述第二路高速脉冲接口频率状态位d的数值为0,不符合第七预设值,频率超限,第二路高速脉冲接口频率状态不正常,从站拒绝执行当前主站数据帧,主站停止向所述从站发送主站数据帧,并发出报警,主站调整其向所述从站发送的主站数据帧,重新向从站发送主站数据帧,以使得第一路高速脉冲接口频率状态位d为1。
在本实施例中,所述预设的脉冲数范围为(0,250]中的整数。
S53:主站判断所述从站实际工作信息与所述从站数据帧中所对应的从站标准工作信息是否一致,若否,则所述主站控制从站排查问题,以使得所述从站实际工作信息与所述从站标准工作一致。具体为
S531:判断从站存储器状态位e与所述从站数据帧中所对应的从站标准工作信息是否一致。若所述从站存储器状态位e数值为0,则存储器工作状态正常,从站存储器实际工作信息与所述从站数据帧中所对应的从站存储器标准工作信息一致;若所述从站存储器状态位e数值为1,则表示存储器工作状态不正常,从站存储器实际工作信息与所述从站数据帧中所对应的从站存储器标准工作信息不一致,主站停止向所述从站发送主站数据帧,并发出报警,主站控制从站排查存储器问题,以使得所述从站存储器实际工作信息与所述从站存储器标准工作一致。
S532:判断从站电压状态位f与所述从站数据帧中所对应的从站标准工作信息是否一致。若所述从站电压状态位f为0,则电压正常,从站电压实际工作信息与所述从站数据帧中所对应的从站电压标准工作信息一致;若所述从站电压状态位f为1,则电压异常,从站电压实际工作信息与所述从站数据帧中所对应的从站电压标准工作信息不一致,主站停止向所述从站发送主站数据帧,并发出报警,主站控制从站排查存储器问题,以使得所述从站存储器实际工作信息与所述从站存储器标准工作一致。
所述电压异常指的是电压不在预设的电压范围内,所述预设的电压范围可根据实际情况进行设置,本实施例中,预设的电压范围为28V-19V。
S54:所述主站判断所述实际脉冲方向信息是否符合第八预设值,若否,则所述主站调整其向所述从站发送的主站数据帧,以使得所述实际脉冲方向信息与所述第八预设值相符合。具体为:
S541:判断第一路高速脉冲接口脉冲方向状态位g是否符合第八预设值,在本实施例中,所述第八预设值为0。若第一路高速脉冲接口脉冲方向状态位g数值为0,则表示脉冲方向正常,第一路高速脉冲接口脉冲方向状态位g符合第八预设值,从站执行当前接收到的主站数据帧;若第一路高速脉冲接口脉冲方向状态位g数值为1,则表示脉冲方向发生突变,第一路高速脉冲接口脉冲方向状态位g不符合第八预设值,从站拒绝执行当前主站数据帧,主站停止向所述从站发送主站数据帧并发出报警,主站调整其向所述从站发送的主站数据帧,重新向从站发送主站数据帧,以使得第一路高速脉冲接口脉冲方向状态位g为0。
在本实施例中,通过比较两个连续总线周期的脉冲方向指令1的数值是否相同来确定第一路高速脉冲接口脉冲方向状态位g数值,若相同,则所述第一路高速脉冲接口脉冲方向状态位g数值为0,即连续两个总线周期的脉冲方向相同,所述第一路高速脉冲接口脉冲方向状态正常;若两个连续总线周期的脉冲方向指令1的数值不同,则所述第一路高速脉冲接口脉冲方向状态位g数值为1,即连续两个总线周期的脉冲方向不同,所述第一路高速脉冲接口脉冲方向状态不正常,主站停止向所述从站发送主站数据帧,并发出报警。
S542:判断第二路高速脉冲接口脉冲方向状态位h是否符合第八预设值,在本实施例中,所述第八预设值为0。若第二路高速脉冲接口脉冲方向状态位h数值为0,则表示脉冲方向正常,第二路高速脉冲接口脉冲方向状态位h符合第八预设值,从站执行当前接收到的主站数据帧;若第二路高速脉冲接口脉冲方向状态位h数值为1,则表示脉冲方向发生突变,第二路高速脉冲接口脉冲方向状态位h不符合第八预设值,从站拒绝执行当前主站数据帧,主站停止向所述从站发送主站数据帧并发出报警,主站调整其向所述从站发送的主站数据帧,重新向从站发送主站数据帧,以使得第二路高速脉冲接口脉冲方向状态位h为0。
在本实施例中,通过比较两个连续总线周期的脉冲方向指令1的数值是否相同来确定第二路高速脉冲接口脉冲方向状态位h数值,若相同,则所述第二路高速脉冲接口脉冲方向状态位h数值为0,即连续两个总线周期的脉冲方向相同,所述第二路高速脉冲接口脉冲方向状态正常;若两个连续总线周期的脉冲方向指令1的数值不同,则所述第二路高速脉冲接口脉冲方向状态位h数值为1,即连续两个总线周期的脉冲方向不同,所述第二路高速脉冲接口脉冲方向状态不正常,主站停止向所述从站发送主站数据帧,并发出报警。
在本实施例中,正常状态下,连续两个总线周期发送的脉冲方向相同,即脉冲方向指令1的数值相同。在非正常状态下,连续两个总线周期发送的脉冲方向不同,即脉冲方向指令1的数值不同,脉冲方向发生跳变,这种情况下,目标设备可能出现向第一方向运动之后立刻向第二方向运动的情况,从而导致电机在运转过程中因为突然换向造成的机械振动、电机寿命下降等不利后果。所述可能导致发生跳变的非正常状态包括:一种是主站确实计算出错,造成连续两次方向位不同,第二种是主站计算正确发送正常,但因为总线数据可能会受到干扰,造成从站连续两次收到的方向位不同。
需要注意的是,步骤S51-S54直接并无先后顺序关系,例如,可按任意顺序执行步骤 S51-S54,例如按顺序S51、S52、S53、S54执行,也可按顺序S54、S52、S53、S51执行,也可按顺序S53、S54、S51、S52执行。
主站停止发送主站数据帧并发送报警后,对报警数据进行问题排查,若为主站发送的主站数据帧有问题,则主站重新对发送数据进行算法运算和控制逻辑分析,纠正错误后重新发送主站数据帧,在本实施例中,即为第一路高速脉冲接口脉冲发送状态位a、第二路高速脉冲接口脉冲发送状态位b、第一路高速脉冲接口频率状态位c、第二路高速脉冲接口频率状态位d、第一路高速脉冲接口脉冲方向状态位g、第二路高速脉冲接口脉冲方向状态位h与预设值不同时,主站报警后,主站排查问题并重新向从站发送主站数据帧;并通过主站数据帧中的从站报警复位指令8控制从站进行复位,将从站数据帧复位为预设值。
在本实施例中,主站接收到从站发送的从站数据帧后,发出报警,所述报警具体为通过主站外接的LCD显示报警信息,所述显示报警信息主要包括显示报警的从站的ID信息和从站数据帧中所需报警的状态位,即为从站心跳位i、第一路高速脉冲接口脉冲发送状态位 a、第二路高速脉冲接口脉冲发送状态位b、第一路高速脉冲接口频率状态位c、第二路高速脉冲接口频率状态位d、从站存储器状态位e、从站电压状态位f、第一路高速脉冲接口脉冲方向状态位g、第二路高速脉冲接口脉冲方向状态位h中的一者或至少两者的组合。
若为从站问题,则主站对脉冲扩展单元进行硬件与软件的检查维修,更正错误后,重新恢复发送主站数据帧,并通过主站数据帧中的从站报警复位指令8控制从站进行复位,将从站数据帧复位为从站标准工作信息,在本实施例中,即为从站存储器状态位e、从站电压状态位f不符合从站标准工作信息时,主站控制从站排查问题并重新向主站发送从站数据帧。
在本实施例中,从站判断主站数据帧中的从站报警复位指令8是否符合第六预设值,若是,则从站复位主站数据帧,若否,则从站不复位主站数据帧。在本实施例中,所述第六预设值为1,即当从站报警复位指令8中的数值为0时,从站忽略此位、正常工作,不进行复位工作;当从站报警复位指令8中的数值为1时,从站对自身的报警信息进行复位处理,即从站将从站数据帧复位为预设值或者从站标准工作信息。从站复位从站数据帧即为将从站心跳位i、第一路高速脉冲接口脉冲发送状态位a、第二路高速脉冲接口脉冲发送状态位b、第一路高速脉冲接口频率状态位c、第二路高速脉冲接口频率状态位d、从站存储器状态位e、从站电压状态位f、第一路高速脉冲接口脉冲方向状态位g、第二路高速脉冲接口脉冲方向状态位h复位为预设值或者从站标准工作信息。
在本实施例中,在主站中开启高精度定时器,用于对整个总线周期和当前控制周期T 进行高精度定时,同时用来完成全部总线数据和命令的同步。在本实施例中,总线周期和当前控制周期相同,均为T。如图4所示,在每一个总线周期T中,前半个周期,主站完成所有算法的运算和控制逻辑的分析,并将所得出来的数据按照本实施例中所提出的脉冲扩展协议分拆打包,形成主站数据帧,同时将定时帧广播到总线上,所有从站在接收到定时帧之后,同步执行上次总线周期中接收到的数据和指令,并且将内部的各种状态根据本实施例中所提出的脉冲扩展协议打包,得到从站数据帧,并发送到总线上,主站接收并保存所有从站的从站数据帧,获取到所有从站的各种状态信息,并根据从站的状态信息做相应的检查和处理。后半个周期,主站将按照协议打包好的数据和命令,即主站数据帧,发送到总线上,从站根据自身的ID接收到各自的主站数据帧,根据本实施例中提出的脉冲扩展协议解析主站数据帧中的数据和脉冲指令,得到当前控制周期内的脉冲个数和脉冲方向,并据此控制目标设备进行工作,并对脉冲计数作相应的处理。
所有在线从站在收到主站下一个定时帧的同时,同步进行相同的处理并执行脉冲发送指令,实现了主站脉冲口与从站脉冲口、以及各从站脉冲口之间的同步实时控制,进一步的,为高速度、高精度、有联动和插补要求的多轴运动控制场合提供了一种低成本的经济型选择方案。
根据CAN总线的特点,当总线空闲时,连接到总线上的所有单元都可以启动发送信息,并能自动进行总线仲裁和竞争处理。CAN总线周期与主站的控制周期相同,均配置成T=2ms,总线波特率设置成500Kbps。计算可得每半个周期即1ms的时间之内,总线最大允许数据量约为62字节。从图3 分析,每半个周期内,总线上占用的数据量最大约为4个字节,因此应用这种基于CAN总线的实时、高速脉冲扩展协议,理论上可扩展脉冲模块的数量超过10个即20路脉冲口,极大的拓展了行业应用的范围。
最后,本实施例中还提出了一种通用控制器,所述通用运动控制器包括主控单元和脉冲扩展单元,所述主控单元内设置有主站,所述脉冲扩展单元内设置有多个从站,所述主站与所述多个从站之间采用脉冲扩展协议进行通信,具体通信方法采用本实施例中提出的一种基于脉冲扩展协议的通信方法。通过使用所述通信方法提高了主控单元和脉冲扩展单元之间的通信效率、通信精度和通信速度,从而提高了通用控制器的性能。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由上面的权利要求指出。
Claims (10)
1.一种基于脉冲扩展协议的通信方法,应用于通用运动控制器,所述通用运动控制器包括主控单元和脉冲扩展单元,所述主控单元内设置有主站,所述脉冲扩展单元内设置有多个从站,其特征在于,所述主站与所述多个从站之间采用脉冲扩展协议进行通信,具体通信方法如下:
在一个控制周期内,所述主站向所述多个从站均发送多个主站数据帧,所述主站数据帧包括脉冲方向指令、脉冲数指令、脉冲急停指令以及脉冲回读指令;
所述从站接收对应的当前主站数据帧,并根据所述脉冲急停指令的指示,选择性地执行所述脉冲方向指令、脉冲数指令和所述脉冲回读指令,以及,
在执行完所述脉冲回读指令后,所述从站继续接收下一个主站数据帧。
2.根据权利要求1所述的方法,其特征在于,所述根据所述脉冲急停指令的指示,选择性地执行所述脉冲方向指令、脉冲数指令和所述脉冲回读指令,包括:
所述从站判断所述脉冲急停指令的参数值是否符合第一预设值,若是,则所述从站执行所述脉冲方向指令、所述脉冲数指令以及所述脉冲回读指令;反之,则所述从站停止执行所述脉冲急停指令和所述脉冲回读指令。
3.根据权利要求1所述的方法,其特征在于,所述从站执行所述脉冲方向指令,包括:
所述从站从脉冲数指令中解析出当前控制周期T中需要发送的脉冲数N;
所述从站判断所述脉冲方向指令的参数值是否满足第二预设值,若是,则所述从站执行所述脉冲方向指令以控制目标设备执行向第一方向运动N个脉冲数;若否,则,
所述从站判断所述脉冲方向指令的参数值是否满足第三预设值,若是,则所述从站执行所述脉冲方向指令以控制目标设备执行向第二方向运动N个脉冲数;
其中,所述第二预设值不同于所述第三预设值,所述第一方向不同于所述第二方向。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述从站执行所述脉冲回读指令,包括:
所述从站判断所述脉冲回读指令的参数值是否满足第四预设值,若是,则所述从站执行所述脉冲回读指令,从站发送从站数据帧至所述主站,向主站反馈从站的实际工作状态,所述从站数据帧包括实际脉冲发送信息、实际脉冲控制信息和实际脉冲方向信息。
5.根据权利要求4所述的方法,其特征在于,在所述从站执行所述脉冲回读指令以将所述从站的实际工作状态发送至所述主站之后,所述方法还包括:
所述实际脉冲控制信息包括第一路高速脉冲接口频率状态位和第二路高速脉冲接口频率状态位;
所述从站判断所述第一路高速脉冲接口频率状态位是否符合第七预设值,若否,则所述主站调整其向所述从站发送的主站数据帧,以使得所述第一路高速脉冲接口频率状态位与所述第七预设值相符合;
所述从站判断所述第二路高速脉冲接口频率状态位是否符合第七预设值,若否,则所述主站调整其向所述从站发送的主站数据帧,以使得所述第二路高速脉冲接口频率状态位与所述第七预设值相符合。
6.根据权利要求4所述的方法,其特征在于,所述在执行完所述脉冲回读指令后,所述从站继续接收下一个主站数据帧,包括:
所述实际脉冲发送信息包括第一路高速脉冲接口脉冲发送状态位和第二路高速脉冲接口脉冲发送状态位;
所述主站判断所述第一路高速脉冲接口脉冲发送状态位是否符合第五预设值,若是,则所述主站向所述从站继续发送所述下一个主站数据帧;反之,则所述主站停止向所述从站继续发送所述下一个主站数据帧;
所述主站判断所述第二路高速脉冲接口脉冲发送状态位是否符合第五预设值,若是,则所述主站向所述从站继续发送所述下一个主站数据帧;反之,则所述主站停止向所述从站继续发送所述下一个主站数据帧。
7.根据权利要求4所述的方法,其特征在于,在所述从站执行所述脉冲回读指令以将所述从站的实际工作状态发送至所述主站之后,所述方法还包括:
所述实际脉冲方向信息包括第一路高速脉冲接口脉冲方向状态位和第二路高速脉冲接口脉冲方向状态位;
所述主站判断所述第一路高速脉冲接口脉冲方向状态位是否符合第八预设值,若否,则所述主站调整其向所述从站发送的主站数据帧,以使得所述第一路高速脉冲接口脉冲方向状态位与所述第八预设值相符合;
所述主站判断所述第二路高速脉冲接口脉冲方向状态位是否符合第八预设值,若否,则所述主站调整其向所述从站发送的主站数据帧,以使得所述第二路高速脉冲接口脉冲方向状态位与所述第八预设值相符合。
8.根据权利要求1-3中任一项所述的方法,其特征在于,所述从站接收对应的当前主站数据帧,包括:
所述从站判断其自身的ID信息与所述当前主站数据帧所对应的当前ID信息是否一致,若是,则所述从站判定所述当前主站数据帧与其相对应,并接收所述当前主站数据帧。
9.根据权利要求1-3中任一项所述的方法,其特征在于,在所述主站向所述多个从站均发送多个主站数据帧之前,所述方法还包括:
所述主站向所述多个从站发送定时帧;
至少一个所述从站接收到所述定时帧,则判定所述主站处于正常工作状态;
响应于预设一段时间各所述从站均未接收到所述定时帧,则判定所述主站处于非正常工作状态,从站停止工作。
10.一种通用控制器,所述通用运动控制器包括主控单元和脉冲扩展单元,所述主控单元内设置有主站,所述脉冲扩展单元内设置有多个从站,其特征在于,所述主站与所述多个从站之间采用脉冲扩展协议进行通信,具体通信方法采用权利要求1-9中任一项所述的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010137747.7A CN111327502B (zh) | 2020-03-03 | 2020-03-03 | 一种基于脉冲扩展协议的通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010137747.7A CN111327502B (zh) | 2020-03-03 | 2020-03-03 | 一种基于脉冲扩展协议的通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111327502A CN111327502A (zh) | 2020-06-23 |
CN111327502B true CN111327502B (zh) | 2021-12-14 |
Family
ID=71171377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010137747.7A Active CN111327502B (zh) | 2020-03-03 | 2020-03-03 | 一种基于脉冲扩展协议的通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111327502B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112532694B (zh) * | 2020-11-12 | 2023-04-07 | 许继集团有限公司 | 一种适用于主站通讯的远程集控方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5031095A (en) * | 1987-02-20 | 1991-07-09 | Matsushita Electric Industrial Co., Ltd. | Data transmission apparatus |
CN101193122A (zh) * | 2006-11-29 | 2008-06-04 | 夏普株式会社 | 通信设备、通信方法、通信电路及通信系统 |
CN204733178U (zh) * | 2015-03-11 | 2015-10-28 | 华中科技大学 | 一种基于FPGA的EtherCAT主站装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008141252A (ja) * | 2006-11-29 | 2008-06-19 | Sharp Corp | 通信機器、通信方法、通信回路、通信システム、プログラム、およびプログラムを記録したコンピュータ読み取り可能な記録媒体 |
CN101170472A (zh) * | 2007-10-26 | 2008-04-30 | 华中科技大学 | 一种基于以太网技术的数控通信方法 |
CN102393702A (zh) * | 2011-10-14 | 2012-03-28 | 南京航空航天大学 | 运动控制终端的扩展方法及系统 |
CN103425106B (zh) * | 2013-08-08 | 2015-12-23 | 华南理工大学 | 一种基于Linux的EtherCAT主/从站控制系统及方法 |
CN104702474B (zh) * | 2015-03-11 | 2018-02-23 | 华中科技大学 | 一种基于FPGA的EtherCAT主站装置 |
CN207281544U (zh) * | 2017-10-26 | 2018-04-27 | 无锡市驰海智能科技有限公司 | 基于EtherCAT总线的通用型实时运动控制系统 |
-
2020
- 2020-03-03 CN CN202010137747.7A patent/CN111327502B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5031095A (en) * | 1987-02-20 | 1991-07-09 | Matsushita Electric Industrial Co., Ltd. | Data transmission apparatus |
CN101193122A (zh) * | 2006-11-29 | 2008-06-04 | 夏普株式会社 | 通信设备、通信方法、通信电路及通信系统 |
CN204733178U (zh) * | 2015-03-11 | 2015-10-28 | 华中科技大学 | 一种基于FPGA的EtherCAT主站装置 |
Non-Patent Citations (2)
Title |
---|
基于单片机的CAN-PROFIBUS-DP总线桥的设计;胡永红等;《计算机测量与控制》;20090725(第07期);107-109 * |
电力远动通信规约仿真系统的实现;罗广孝;《河北电力技术》;20071025(第05期);16-17 * |
Also Published As
Publication number | Publication date |
---|---|
CN111327502A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1321838B1 (en) | Motor controlling serial communication device | |
WO2021147351A1 (zh) | 基于EtherCAT P总线技术的多轴伺服电机控制系统及方法 | |
US5777870A (en) | Drive control commanding unit, a synchronous contol system for a plurality of drive control commanding units, and a synchronous control method for the units | |
JP2738106B2 (ja) | 多重通信制御装置 | |
JPH04293338A (ja) | 通信システム | |
CN106411184A (zh) | 一种网络化的多轴电机同步控制装置及方法 | |
GB1451367A (en) | Data communication system employing a series loop | |
CN111327502B (zh) | 一种基于脉冲扩展协议的通信方法 | |
US20060198239A1 (en) | Modular numberical control | |
WO2002052715A1 (fr) | Systeme de commande d'entrainement d'un servomoteur | |
US7272152B2 (en) | Method for real-time communication between a number of network subscribers in a communication system using ethernet physics, and a corresponding communication system using ethernet physics | |
CN111045393A (zh) | 驱控一体伺服实现系统 | |
JP2754922B2 (ja) | 伝送システムおよび伝送方法 | |
CN109951113A (zh) | 电机驱动器、自动化设备及自动化控制系统 | |
US5748465A (en) | Method of processing data in numerically controlled drive unit | |
CN112910593A (zh) | 一种应用于伺服电机驱动器的同步控制系统及方法 | |
CN109361330A (zh) | 一种基于总线的伺服电机同步控制方法 | |
JP4029617B2 (ja) | 数値制御システムおよびこの数値制御システムにおける通信タイミングの設定方法 | |
CN112162532A (zh) | 一种适用于面向多自由度平台的运动控制系统 | |
CN106656702A (zh) | 智能冗余串行总线的时序控制方法 | |
CN114995536B (zh) | 一种用于伺服电机的运动控制器 | |
CN107053169B (zh) | 一种总线型智能伺服驱动系统、机器人及方法 | |
JP4118695B2 (ja) | 数値制御システム | |
CN210515000U (zh) | 一种双cpu冗余互备智能驱动器主控板 | |
CN118342550A (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 |