控制系统以及脉冲输出装置的制作方法

文档序号:15163462发布日期:2018-08-14 17:07阅读:275来源:国知局

本发明涉及一种基于由控制装置所指令的脉冲(pulse)数及脉冲速度来对驱动装置输出脉冲信号的脉冲输出装置、以及具备所述脉冲输出装置的控制系统。



背景技术:

多数生产现场所使用的机械或设备是由可编程控制器(可编程逻辑控制器(programmablelogiccontroller),以下也称作plc)等控制装置来控制。此种控制装置中,连接配合指令来输出脉冲信号的脉冲输出装置,通过将从所述脉冲输出装置输出的脉冲信号供给至例如脉冲(或者步进(stepping))马达之类的驱动装置,从而控制机械或设备。关于脉冲输出装置的结构或脉冲信号的产生方法,例如在专利文献1中有所揭示。

现有技术文献

专利文献

专利文献1:日本专利第3528890号公报



技术实现要素:

[发明所要解决的问题]

然而,在控制装置与脉冲输出装置同步,而脉冲输出装置以固定周期从控制装置接收指令,生成依据指令的脉冲信号的情况下,由于从指令获得的数值的分辨力的限制等,有时会相对于控制装置所指令的脉冲信号而产生误差。若相对于控制装置所指令的脉冲信号而产生误差,则从脉冲输出装置输出的脉冲信号将成为相对于预定时机(timing)而提前或延迟的信号。

因从脉冲输出装置输出的脉冲信号成为相对于预定时机而提前或延迟的信号,会发生脉冲输出装置所输出的脉冲信号在中途中断的现象。例如,在脉冲输出装置所驱动的驱动装置为马达的情况下,因发生脉冲信号在中途中断的现象,脉冲速度将急剧变化,从而所驱动的马达有可能发生异响或振动。

本发明的目的在于提供一种在脉冲信号成为相对于预定时机而提前或延迟的信号的情况下,对脉冲信号进行修正的脉冲输出装置以及具备所述脉冲输出装置的控制系统。

[解决问题的技术手段]

根据本发明的一方面,一种控制系统,包括:驱动装置,基于脉冲信号而受到驱动;控制装置,对输出至驱动装置的脉冲信号的脉冲数及脉冲速度进行指令;以及脉冲输出装置,基于由控制装置所指令的脉冲数及脉冲速度来对驱动装置输出脉冲信号,其中,脉冲输出装置包括:时钟生成部,生成时钟信号;脉冲输出部,对由时钟生成部所生成的时钟信号进行分频而生成脉冲信号,并以预定时机而输出由控制装置所指令的脉冲数及脉冲速度的脉冲信号;脉冲计数部,对从脉冲输出部输出的脉冲信号的脉冲数进行计数;以及处理部,基于由脉冲计数部所计数的脉冲数相对于由控制装置所指令的脉冲数的误差,对由脉冲输出部所生成的脉冲信号的脉冲速度进行修正。

优选的是,控制装置通过对位置进行指令来对脉冲信号的脉冲数进行指令,脉冲输出装置根据此次指令的位置与前次指令的位置之差,来求出所指令的脉冲信号的脉冲数。

优选的是,处理部在从脉冲输出部输出的脉冲信号相对于预定时机而提前的情况下,以比由控制装置所指令的脉冲速度慢的方式来修正脉冲速度,在从脉冲输出部输出的脉冲信号相对于预定时机而延迟的情况下,以比由控制装置所指令的脉冲速度快的方式来修正脉冲速度。

优选的是,处理部在由控制装置对脉冲数及脉冲速度进行指令的控制周期的每一周期,对脉冲信号的1脉冲量的速度进行修正。

根据本发明的另一方面,一种脉冲输出装置,由控制装置对输出至驱动装置的脉冲信号的脉冲数及脉冲速度进行指令,并基于由控制装置所指令的脉冲数及脉冲速度来对驱动装置输出脉冲信号,所述脉冲输出装置包括:时钟生成部,生成时钟信号;脉冲输出部,对由时钟生成部所生成的时钟信号进行分频而生成脉冲信号,并以预定时机而输出由控制装置所指令的脉冲数及脉冲速度的脉冲信号;脉冲计数部,对从脉冲输出部输出的脉冲信号的脉冲数进行计数;以及处理部,基于由脉冲计数部所计数的脉冲数相对于由控制装置所指令的脉冲数的误差,对由脉冲输出部所生成的脉冲信号的脉冲速度进行修正。

[发明的效果]

根据本技术的控制系统,在脉冲输出装置中,通过对相对于预定时机而提前或延迟的脉冲信号进行修正,从而能够抑制脉冲信号的急剧的脉冲速度的变化。

附图说明

图1是表示本实施方式中的控制系统的概略结构的示意图。

图2是表示本实施方式中的中央处理器(centralprocessingunit,cpu)单元的硬件结构的示意图。

图3是表示本实施方式中的cpu单元所执行的软件结构的示意图。

图4是表示本实施方式中的控制系统的脉冲输出结构的框图。

图5是表示本实施方式中的脉冲输出单元的功能结构的框图。

图6a及图6b是用于对指令位置及指令速度进行说明的图。

图7a、图7b及图7c是用于对脉冲信号的提前或延迟进行说明的图。

图8是用于对本实施方式中的脉冲输出单元的输出脉冲运算处理进行说明的流程图。

图9是用于对本实施方式中的脉冲输出单元的输出脉冲运算处理进行说明的流程图。

图10a、图10b及图10c是用于对修正脉冲信号的脉冲速度进行说明的图。

图11a及图11b是用于对脉冲速度经修正后的脉冲信号进行说明的图。

[符号的说明]

1:plc

2:现场网络

3:信号配线

3a、3b:马达驱动器

4a、4b:步进马达

5:远程i/o终端

8:plc支持装置

9:cd-rom

10:连接电缆

11:plc系统总线

12:电源单元

13:cpu单元

14、53:i/o单元

15:特殊单元

16:脉冲输出单元

30、40:驱动装置

51:远程i/o终端总线

52:通信耦合器

54:脉冲输出单元

100:微处理器

102:芯片组

104:主存储器

106:非易失性存储器

108:系统定时器

110:usb连接器

114:网络

120:plc系统总线控制器

122、142:dma控制电路

124:plc系统总线控制电路

126、146:缓冲存储器

140:现场网络控制器

144:现场网络控制电路

161:通信部

162:处理部

163:时钟生成部

164:脉冲输出部

165:脉冲计数部

200:实时os

210:系统程序

212:调度程序

214:输出处理程序

216:输入处理程序

218:i/o处理程序

220:其他系统程序

222:对运动控制循环的周期进行设定的程序

230:控制程序

232:序列命令运算程序

234:运动运算程序

236:用户程序

300:可编程显示器

s21、s22、s23、s24、s25、s26、s31、s32、s33:步骤

p1:指令位置

sys:plc系统

v1:指令速度

具体实施方式

以下,参照附图来详细说明本实施方式。另外,图中同一符号表示同一或相当的部分。

(a.控制系统的结构)

本实施方式的控制系统具有基于来自控制装置即cpu单元的指令来控制驱动装置(例如步进马达)的控制功能,由脉冲输出装置生成依据来自cpu单元的指令的脉冲信号并输出至驱动装置。首先,参照图1来说明本实施方式的控制系统的结构。

图1是表示本实施方式中的控制系统的概略结构的示意图。作为控制系统的plc系统sys包含plc1、马达驱动器(motordriver)3a、3b、步进马达4a、4b及远程(remote)输入输出(input/output,i/o)终端(terminal)5。马达驱动器3a、3b经由各自的信号配线3而与plc1的脉冲输出单元16连接。远程i/o终端5经由现场网络(fieldnetwork)2而与plc1连接。而且,在plc1上,经由连接电缆(cable)10等而连接有plc支持装置,并经由网络114而连接有可编程显示器300。

马达驱动器3a基于脉冲信号来驱动步进马达4a。由马达驱动器3a及步进马达4a构成驱动装置30。马达驱动器3b基于脉冲信号来驱动步进马达4b。由马达驱动器3b及步进马达4b构成驱动装置40。

进一步详细说明各结构。plc1包含执行主要的运算处理的cpu单元13、一个以上的i/o单元14、特殊单元15及脉冲输出单元16。脉冲输出单元16为脉冲输出装置,生成依据来自cpu单元13的指令的脉冲信号,并将所生成的脉冲信号经由各自的信号配线3而输出至马达驱动器3a、3b。脉冲输出单元16的详细将参照图5而后述。

plc1中所含的单元构成为,可经由plc系统总线11来彼此交换数据。而且,对于这些单元,由电源单元12供给适当的电压电源。另外,构成为plc1的各单元是由plc制造商(maker)所提供,因此plc系统总线11一般由每个plc制造商独自开发而使用。与此相对,如后所述,关于现场网络2,其规格等多已公开,以使不同制造商的产品能够彼此连接。另外,plc1中,是经由plc系统总线11来连接cpu单元13与脉冲输出单元16,但也可经由现场网络2来连接cpu单元13与脉冲输出单元16。

cpu单元13的详细将参照图2而后述。i/o单元14是与普通的输入/输出处理相关的单元,负责通/断(on/off)这个二进制化数据的输入/输出。即,i/o单元14收集传感器是检测出某些对象物的状态(通)及未检测到任何对象物的状态(断)中的哪一种的信息。而且,i/o单元14对于继电器(relay)或执行器(actuator)等输出目的地,输出用于激活的指令(通)及用于禁用的指令(断)中的任一个。

特殊单元15具有模拟数据的输入/输出、温度控制、基于特定通信方式的通信等i/o单元14不支持的功能。

现场网络2传输与cpu单元13交换的各种数据。作为现场网络2,典型的是可使用各种工业用以太网(ethernet)(注册商标)。作为工业用以太网(注册商标),例如已知有ethercat(注册商标)、profinetirt、mechatrolink(注册商标)-iii、powerlink、sercos(注册商标)-iii、cipmotion等,这些中的任一个皆可采用。进而,也可使用工业用以太网(注册商标)以外的现场网络。例如,若是不进行运动(motion)控制的情况,则也可使用devieenet、componet(注册商标)等。本实施方式的plc系统sys中,典型的是在本实施方式中例示采用作为工业用以太网(注册商标)的ethercat(注册商标)来作为现场网络2的情况下的结构。

另外,图1中例示具有plc系统总线11及现场网络2这两者的plc系统sys,但也可采用仅搭载其中一者的系统结构。例如,也可利用现场网络2来连接所有单元。进而,也可将现场网络2的通信单元连接于plc系统总线11,从cpu单元13经由所述通信单元而进行与连接于现场网络2的设备之间的通信。

马达驱动器3a、3b经由各自的信号配线3而与脉冲输出单元16连接,并且依据来自脉冲输出单元16的脉冲信号来驱动步进马达4a、4b。更具体而言,脉冲输出单元16从cpu单元13以固定周期来接收指令位置、指令速度等指令值。脉冲输出单元16依据所收到的指令值来将脉冲信号输出至马达驱动器3a、3b。马达驱动器3a、3b基于脉冲信号来对用于驱动步进马达4a、4b的电流进行调整。另外,马达驱动器3a、3b也有时被称为马达放大器(motoramplifier)。而且,马达驱动器3a、3b也可从连接于步进马达4a、4b的轴的位置传感器(旋转编码器(rotaryencoder))或扭矩传感器(torquesensor)等检测器,获取位置(典型的是根据此次位置与前次位置之差而算出)、速度、扭矩等与步进马达4a、4b的动作相关的实测值。

图1所示的plc系统sys中,表示了将步进马达4a、4b与马达驱动器3a、3b组合而成的系统例,但除此以外,也可在与使用脉冲信号来进行控制的装置组合而成的系统采用。

在图1所示的plc系统sys的现场网络2上,进而连接有远程i/o终端5。远程i/o终端5基本上与i/o单元14同样,进行与普通的输入/输出处理相关的处理。更具体而言,远程i/o终端5包含:通信耦合器52,用于进行与现场网络2中的数据传输相关的处理;以及一个以上的i/o单元53。进而,远程i/o终端5也可包含脉冲输出单元54。在脉冲输出单元54上,虽未图示,但经由信号配线而连接有马达驱动器及步进马达。因此,cpu单元13可经由现场网络2来对脉冲输出单元54输出指令位置、指令速度等指令值。这些单元构成为,可经由远程i/o终端总线51来彼此交换数据。

在plc系统sys中,plc1的cpu单元13作为ethercat中的主机(master)装置发挥功能,马达驱动器3a、3b及通信耦合器52作为ethercat中的从机(slave)装置发挥功能。另外,也可取代cpu单元13而设置作为主机装置发挥功能的单元。

另外,plc支持装置8是供用户生成包含用户程序(userprogram)、表示系统结构(设备结构)的系统结构信息、变量表等的工程(project)的装置。plc支持装置8的硬件结构典型的是包含通用的计算机(computer)。具体而言,虽未图示,但plc支持装置8包含cpu、只读存储器(readonlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、硬盘驱动器(harddiskdrive,hdd)、键盘(keyboard)及鼠标(mouse)、显示器(display)、通信接口(interface,if)等。由plc支持装置8所执行的各种程序是保存在只读光盘(compactdisk-readonlymemory,cd-rom)9中而流通。另外,也可构成为,从上位的主计算机(hostcomputer)等通过网络来下载(download)程序。

可编程显示器300可在画面上显示从plc1获取的各种信息,并且通过用户操作,对保存在plc1中的输入变量的值或脉冲信号的脉冲数、脉冲速度等进行变更。可编程显示器300的硬件结构包含cpu、rom、ram、快闪(flash)rom、时钟、操作键(key)、摄像机、触控屏(touchscreen)、通信接口等。

(b.cpu单元的硬件结构)

接下来,参照图2来说明cpu单元13的硬件结构。图2是表示本实施方式中的cpu单元的硬件结构的示意图。参照图2,cpu单元13包含微处理器(microprocessor)100、芯片组(chipset)102、主存储器(mainmemory)104、非易失性存储器106、系统定时器108、plc系统总线控制器120、现场网络控制器140及通用串行总线(universalserialbus,usb)连接器110。芯片组102与其他组件(component)之间,经由各种总线而分别结合。

微处理器100及芯片组102典型的是遵照通用的计算机体系结构(computerarchitecture)而构成。即,微处理器100对从芯片组102依据内部时钟而依序供给的命令码(code)进行解释并执行。芯片组102在与所连接的各种组件之间交换内部数据,并且生成微处理器100所需的命令码。进而,芯片组102具有对微处理器100中的运算处理的执行结果获得的数据等进行缓存(cache)的功能。

cpu单元13具有主存储器104及非易失性存储器106以作为存储部件。

主存储器104是易失性的存储区域(ram),在对cpu单元13的电源接通后保持应由微处理器100所执行的各种程序。而且,主存储器104也作为微处理器100对各种程序的执行时的作业用存储器而使用。作为此种主存储器104,使用动态随机存取存储器(dynamicrandomaccessmemory,dram)或静态随机存取存储器(staticrandomaccessmemory,sram)等设备。

另一方面,非易失性存储器106非易失性地保持实时(realtime)操作系统(operatingsystem,os)、plc1的系统程序、用户程序、运动运算程序、系统设定参数等数据。这些程序或数据根据需要而复制(copy)到主存储器104中,以供微处理器100能够进行访问。作为此种非易失性存储器106,可使用快闪存储器之类的半导体存储器。或者,也可使用硬盘驱动器之类的磁记录介质或者数字多功能随机存取光盘(digitalversatilediskrandomaccessmemory,dvd-ram)之类的光学记录介质等。

系统定时器108在每个固定周期产生中断信号并提供给微处理器100。典型的是构成为,根据硬件规格,在多个不同的周期分别产生中断信号,但也可设定为,通过操作系统(operatingsystem,os)或基本输入输出系统(basicinputoutputsystem,bios)等,在任意的周期产生中断信号。利用所述系统定时器108所产生的中断信号,实现如后所述的每个运动控制循环(cycle)的控制动作。

cpu单元13具有plc系统总线控制器120及现场网络控制器140以作为通信电路。

缓冲存储器(buffermemory)126作为经由plc系统总线11而输出至其他单元的数据(以下也称作“输出数据”)的发送缓冲器、及作为经由plc系统总线11而从其他单元输入的数据(以下也称作“输入数据”)的接收缓冲器发挥功能。另外,通过微处理器100的运算处理所制作的输出数据原始上保存在主存储器104中。并且,应转发至特定单元的输出数据是从主存储器104读出,并一次性地保持在缓冲存储器126中。而且,从其他单元转发的输入数据在一次性地保存在缓冲存储器126中之后,转移到主存储器104。

直接内存存取(directmemoryaccess,dma)控制电路122进行从主存储器104向缓冲存储器126的输出数据的转发、及从缓冲存储器126向主存储器104的输入数据的转发。

plc系统总线控制电路124在与连接于plc系统总线11的其他单元之间,进行发送缓冲存储器126的输出数据的处理、及接收输入数据并保存到缓冲存储器126中的处理。典型的是,plc系统总线控制电路124提供plc系统总线11中的物理层及数据链路(datalink)层的功能。

现场网络控制器140对经由现场网络2的数据交换进行控制。即,现场网络控制器140依据所使用的现场网络2的规格,对输出数据的发送及输入数据的接收进行控制。如上所述,本实施方式中,由于采用依据ethercat(注册商标)规格的现场网络2,因此使用包含用于进行通常的以太网(注册商标)通信的硬件的、现场网络控制器140。ethercat(注册商标)规格中,可利用实现依据通常的以太网(注册商标)规格的通信协议(protocol)的、普通的以太网(注册商标)控制器。但是,根据作为现场网络2而被采用的工业用以太网(注册商标)的种类,使用与不同于通常通信协议的专用规格的通信协议对应的特别规格的以太网(注册商标)控制器。而且,在采用工业用以太网(注册商标)以外的现场网络的情况下,使用与此规格相应的专用的现场网络控制器。

dma控制电路142是进行从主存储器104向缓冲存储器146的输出数据的转发、及从缓冲存储器146向主存储器104的输入数据的转发。

现场网络控制电路144在与连接于现场网络2的其他装置之间,进行发送缓冲存储器146的输出数据的处理、及接收输入数据并保存到缓冲存储器146中的处理。典型的是,现场网络控制电路144提供现场网络2中的物理层及数据链路层的功能。

usb连接器110是用于连接plc支持装置8与cpu单元13的接口。典型的是,从plc支持装置8转发的、可由cpu单元13的微处理器100所执行的程序等经由usb连接器110而导入至plc1。

(c.cpu单元的软件结构)

接下来,参照图3来说明用于提供本实施方式的各种功能的软件群。这些软件中所含的命令码是在适当时机被读出,并由cpu单元13的微处理器100予以执行。

图3是表示由本实施方式中的cpu单元所执行的软件结构的示意图。参照图3,作为由cpu单元13所执行的软件,为实时os200、系统程序210与用户程序236这三层。

实时os200是根据cpu单元13的计算机体系结构而设计,提供用于供微处理器100执行系统程序210及用户程序236的基本执行环境。所述实时os典型的是由plc的制造商或者专门的软件公司等提供。

系统程序210是用于提供作为plc1的功能的软件群。具体而言,系统程序210包含调度程序212、输出处理程序214、输入处理程序216、序列(sequence)命令运算程序232、运动运算程序234及其他系统程序220。另外,一般而言,输出处理程序214及输入处理程序216是连续地(作为一体)执行,因此也有时将这些程序总称为i/o处理程序218。

用户程序236是根据用户的控制目的而制作。即,用户程序236是根据使用plc系统sys来进行控制的对象生产线(line)(工艺(process))等而任意设计的程序。

用户程序236协同序列命令运算程序232及运动运算程序234来实现用户的控制目的。即,用户程序236通过利用由序列命令运算程序232及运动运算程序234所提供的命令、函数、功能模块等,来实现所编程的动作。因此,用户程序236、序列命令运算程序232及运动运算程序234也有时总称为控制程序230。

如此,cpu单元13的微处理器100执行保存在存储部件中的系统程序210及用户程序236。

以下,更详细地说明各程序。

如上所述,用户程序236是根据用户的控制目的(例如对象生产线或工艺)而制作。典型的是,用户程序236成为可由cpu单元13的微处理器100执行的目标程序(objectprogram)格式。所述用户程序236是通过在plc支持装置8等中,对利用梯形图(ladder)语言等而记述的源程序(sourceprogram)进行编译(compile)而生成。并且,所生成的目标程序格式的用户程序236是从plc支持装置8经由连接电缆10而转发至cpu单元13,并保存到非易失性存储器106等中。

调度程序212对于输出处理程序214、输入处理程序216及控制程序230,控制各执行循环中的处理开始及处理中断后的处理的重新开始。更具体而言,调度程序212控制用户程序236及运动运算程序234的执行。

本实施方式的cpu单元13中,采用适合于运动运算程序234的固定周期的执行循环(运动控制循环)来作为整个处理的共用循环。因此,由于难以在一个运动控制循环内完成所有处理,因而根据应执行的处理的优先级等,区分为:应在各运动控制循环中完成执行的处理;以及也可跨及多个运动控制循环而执行的处理。调度程序212对这些被区分的处理的执行顺序等进行管理。更具体而言,调度程序212在各运动控制循环期间内,给予越高优先级的程序,越是先执行。

输出处理程序214将通过用户程序236(控制程序230)的执行而生成的输出数据,重新配置为适合于转发给plc系统总线控制器120和/或现场网络控制器140的格式。在plc系统总线控制器120或现场网络控制器140需要来自微处理器100的用于执行发送的指示时,输出处理程序214发布此种指示。

输入处理程序216将由plc系统总线控制器120和/或现场网络控制器140所接收的输入数据,重新配置为适合于控制程序230使用的格式。

序列命令运算程序232是在执行由用户程序236所使用的某种序列命令时调用,为了实现所述命令的内容而执行的程序。例如,在序列命令运算程序232中包含:基于从计测装置获得的计测数据而生成对象物的二维形状数据的程序;或根据所生成的形状数据来运算高度或剖面积等特征量的程序等。

运动运算程序234是依据用户程序236的指示来执行计测信息从控制器6的读出、或算出对马达驱动器3a、3b输出的指令位置的程序等。

其他系统程序220归纳表示了图3中个别地表示的程序以外的、用于实现plc1的各种功能的程序群。其他系统程序220包含对运动控制循环(cycle)的周期进行设定的程序222。

运动控制循环的周期可根据控制目的来适当设定。典型的是,用户将对运动控制循环的周期进行指定的信息输入至plc支持装置8。于是,所述输入的信息从plc支持装置8转发至cpu单元13。对运动控制循环的周期进行设定的程序222使来自plc支持装置8的信息保存至非易失性存储器106中,并且对系统定时器108进行设定,以在从系统定时器108所指定的运动控制循环的周期产生中断信号。在对cpu单元13的电源接通时,通过执行对运动控制循环的周期进行设定的程序222,从而从非易失性存储器106读出对运动控制循环的周期进行指定的信息,并依据所读出的信息来设定系统定时器108。

作为对运动控制循环的周期进行指定的信息的格式,可采用表示运动控制循环的周期的时间的值、或从与运动控制循环的周期相关的预先准备的多个选择项中确定一个的信息(编号或文字)等。

本实施方式的cpu单元13中,作为对运动控制循环的周期进行设定的部件,符合的是:用于获取对运动控制循环的周期进行指定的信息的与plc支持装置8的通信部件、对运动控制循环的周期进行设定的程序222、以及可任意设定对运动控制循环进行规定的中断信号的周期地构成的系统定时器108的结构等、用于任意设定运动控制循环的周期的要素。

实时os200提供用于随着时间经过来切换执行多个程序的环境。本实施方式的plc1中,作为用于将通过cpu单元13的程序执行而生成的输出数据输出(发送)至其他单元或其他装置的事件(中断),初始设定有输出准备中断(p)及现场网络发送中断(x)。实时os200在发生输出准备中断(p)或现场网络发送中断(x)时,在中断发生时间点,将微处理器100中的执行对象从执行中的程序切换为调度程序212。另外,实时os200在调度程序212及由调度程序212控制其执行的程序均未执行的情况下,执行其他系统程序210中所含的程序。作为此种程序,例如包含与经由cpu单元13与plc支持装置8之间的连接电缆10(usb)等的通信处理相关者。

(d.控制系统的脉冲输出结构)

接下来,plc系统sys利用plc1来执行序列命令运算程序232或运动运算程序234,由此,cpu单元13将指令位置及指令速度指令给脉冲输出单元16。脉冲输出单元16依据指令来将脉冲信号输出至马达驱动器3a、3b。进而,plc系统sys中,马达驱动器3a、3b基于脉冲信号来驱动步进马达4a、4b。具体而言,参照图来说明作为控制系统的plc系统sys的脉冲输出结构。图4是表示本实施方式中的控制系统的脉冲输出结构的框图。

plc系统sys具有作为上位控制器的cpu单元13、脉冲输出单元16及马达驱动器3a、3b。cpu单元13与脉冲输出单元16是经由plc系统总线11而连接,从cpu单元13对脉冲输出单元16输出包含指令位置及指令速度的指令值。脉冲输出单元16与马达驱动器3a、3b是经由各自的信号配线3而连接,从脉冲输出单元16对马达驱动器3a、3b输出依据指令的脉冲信号。

作为上位控制器的cpu单元13经由plc系统总线11,以固定周期而输出用于对脉冲输出单元16输出脉冲信号的指令值。此处,将固定周期也称作控制周期。脉冲输出单元16也基于在每个控制周期输入的指令值,在每个控制周期作为系统设定而预先对脉冲输出单元16规定的时机,生成脉冲信号并予以输出。即,作为上位控制器的cpu单元13与脉冲输出单元16经由plc系统总线11而同步。作为同步方法,例如使用ieee1588规格的分布式时钟(distributeclock)方式等方法。cpu单元13给予整数的位置数据(指令位置)与整数的速度数据(指令速度),以作为对脉冲输出单元16输出的指令值。此处,位置数据(指令位置)及速度数据(指令速度)例如可利用cia402规格的“commandposition(指令位置)”及“commandvelocity(指令速度)”来定义。例如,在由cpu单元13执行控制马达的应用程序时,cpu单元13将位置数据(指令位置)及速度数据(指令速度)输出至脉冲输出单元16,以控制马达的旋转角及旋转速度。

plc系统总线11是在cpu单元13与脉冲输出单元16之间交换数据的通信网络。连接cpu单元13与脉冲输出单元16的通信网络并不限于plc系统总线11,也可为现场网络2。用于cpu单元13与脉冲输出单元16之间的通信网络只要至少具备使cpu单元13与脉冲输出单元16同步的同步部件即可。而且,cpu单元13与脉冲输出单元16之间也可利用多个通信网络而连接。但是,此时,连接各通信网络的耦合器装置必须具有保证各通信网络间的同步的功能。

进一步详细说明生成依据指令的脉冲信号的脉冲输出单元16。图5是表示本实施方式中的脉冲输出单元16的功能结构的框图。图5所示的脉冲输出单元16具有通信部161、处理部162、时钟生成部163、脉冲输出部164及脉冲计数部165。另外,虽未图示,但脉冲输出单元16包含cpu、rom、ram等。通信部161为通信接口(if),是经由plc系统总线11来与cpu单元13进行数据交换的部分。通信部161具有经由plc系统总线11来与cpu单元13进行同步的部件。通信部161从cpu单元13接收位置数据(指令位置)与速度数据(指令速度)来作为指令值。

处理部162基于所接收的指令值,算出在每个控制周期输出的脉冲数及脉冲频率(脉冲速度)。处理部162在计算脉冲数及脉冲频率时,从脉冲计数部165接收自脉冲输出部164实际输出的脉冲数的信息,对算出的脉冲频率进行修正。处理部162将所算出的脉冲数及脉冲频率输出至脉冲输出部164,并进行控制,以使得能够从脉冲输出部164输出应在此控制周期输出的脉冲信号。

脉冲输出部164基于由处理部162所算出的脉冲数及脉冲频率,对时钟生成部163所生成的时钟信号进行分频而生成脉冲信号并予以输出。脉冲计数部165对脉冲输出部164所输出的脉冲信号的脉冲数进行计数,并反馈(feedback)给处理部162。

接下来,进一步详细说明指令位置及指令速度与脉冲信号的关系。图6a及图6b是用于对指令位置及指令速度进行说明的图。图6a所示的波形是对指令位置及指令速度进行指令时的脉冲信号的波形。例如,在设控制周期为1ms且将指令位置指令为1、指令速度指令为1000脉冲每秒(pulsepersecond,pps)的情况下,脉冲信号成为脉冲数为1且脉冲频率为1000pps的波形。接下来,在将指令位置指令为3、指令速度指令为2000pps的情况下,脉冲信号成为脉冲数为2且脉冲频率为2000pps的波形。另外,脉冲数成为从此次的指令位置即3减去前次的指令位置即1所得的2。进而,在将指令位置指令为7、指令速度指令为4000pps的情况下,脉冲信号成为脉冲数为4且脉冲频率为4000pps的波形,在将指令位置指令为15、指令速度指令为8000pps的情况下,脉冲信号成为脉冲数为8且脉冲频率为8000pps的波形。

处理部162在每个控制周期收到指令位置及指令速度时,算出在此控制周期输出的脉冲信号的脉冲数及脉冲频率,并从脉冲输出部164输出图6a所示的波形的脉冲信号。处理部162中的具体处理如图6b所示,是在处于脉冲信号的输出之前的输出脉冲运算处理的时机进行。即,处理部162以能够在预定时机(虚线所示的位置)输出脉冲信号的方式,预先从cpu单元13接收指令位置及指令速度的指令值,并在输出脉冲运算处理的时机算出脉冲信号的脉冲数及脉冲频率。例如,处理部162为了以图6b所示的指令位置p1及指令速度v1的时机而输出脉冲信号,在输出指令位置p1及指令速度v1之前的脉冲信号的中途(例如输出70%脉冲信号的时机),从cpu单元13接收指令值而执行输出脉冲运算处理。

图6a所说明的示例中,由于指令位置及指令速度是以收敛在控制周期内的值来指令,因此在cpu单元13所指令的指令位置及指令速度、与实际输出的脉冲信号的脉冲数及脉冲频率之间不会产生提前或延迟。然而,因cpu单元13所指令的指令位置及指令速度与所输出的脉冲信号的脉冲数及脉冲频率的误差,有时存在指令位置及指令速度未收敛在控制周期内的值。在指令位置及指令速度为未收敛在控制周期的值的情况下,脉冲输出单元16将输出相对于由cpu单元13作为系统设定而预定的时机为提前或延迟的脉冲信号。具体而言,参照图来说明脉冲信号相对于作为系统设定而预先对脉冲输出单元16所规定的时机的提前或延迟。

图7a至图7c是用于说明脉冲信号的提前或延迟的图。图7a至图7c中,以脉冲输出单元16从cpu单元13收到将脉冲速度设为固定这一指令值的情况为例进行说明,图7a表示脉冲信号相对于预定时机的提前。图7b表示脉冲信号相对于预定时机的延迟。例如在cpu单元13对指令位置及指令速度进行指令以使脉冲数为8且脉冲速度为8000pps的情况下,在8000pps的脉冲速度且1ms的控制周期的期间内收敛有8个脉冲,因此若所指令的脉冲数为8,则脉冲信号既不会发生提前也不会发生延迟。

然而,若基于由cpu单元13所指令的指令位置及指令速度而算出收敛在控制周期内的脉冲数的结果为,所算出的脉冲数的值含有小数,则处理部162将所算出的脉冲数的值四舍五入为整数。因此,脉冲信号会产生与由处理部162四舍五入为整数相应的误差。例如,在将基于cpu单元13所指令的指令位置及指令速度而由处理部162所算出的脉冲数的小数以下舍去而算出脉冲数为7的情况下,若脉冲频率为8000pps,则在1ms的控制周期的期间收敛有8个脉冲,但由于所指令的脉冲数为7,因此下个脉冲信号将快进一个脉冲量。

图7a所示的波形中,脉冲信号输出相对于预定时机而提前,且依照指令1、指令2、指令3、指令4的顺序而提前量逐渐变大。在脉冲输出部164中,在脉冲信号的输出处理中,进行在开始脉冲信号的输出后将下个控制周期的脉冲信号连续地相连的处理,但若脉冲信号输出的提前量变大,则有时在进行使脉冲信号连续地相连的处理之前,脉冲信号的输出便已完成。因此,在脉冲输出部164中,无法作为连续的脉冲信号而生成,脉冲信号将中断直至下个控制周期的脉冲信号输出开始为止的时间量。

相反地,若在处理部162中将小数以下进位,则有时cpu单元13会对指令位置及指令速度进行指令,以算出脉冲数为9而脉冲频率为8000pps。此时,在1ms的控制周期的期间内收敛有8个脉冲,但由于所指令的脉冲数为9,因此下个脉冲信号将延迟一个脉冲量。

图7b所示的波形中,脉冲信号输出相对于预定时机(指令1等的虚线位置)而延迟,且依照指令1、指令2、指令3、指令4的顺序而延迟量逐渐变大。此处,脉冲输出单元16例如为能够将一个从cpu单元13收到的指令值保存到缓冲器中的结构,且在输出指令2的脉冲信号的过程中收到指令3的指令值时,在缓冲器中保存指令3的指令值。然而,若指令2的脉冲信号输出发生延迟,在输出指令2的脉冲信号的过程中还会进一步收到指令4的指令值,由于在缓冲器中已保存有指令3的指令值,因此无法将收到的指令4的指令值保存到缓冲器中而丢弃。并且,在指令2的脉冲信号的输出结束后,基于保存在缓冲器中的指令3的指令值来输出指令3的脉冲信号,但若直至指令3的脉冲信号的输出结束为止仍无法收到指令5的指令值,则将如图7b般中断。

若不对脉冲速度进行任何修正,而如图7a及图7b所示般相对于预定时机而产生了脉冲信号输出的提前或延迟,则脉冲信号会发生中断。当脉冲信号发生中断时,脉冲速度将急剧变化。图7c是表示脉冲信号发生中断时的脉冲速度的变化的图。脉冲输出单元中,例如进行下述控制:从开始脉冲信号的输出开始加大脉冲速度,在某值处将脉冲速度维持为固定,随后减小脉冲速度。然而,若如图7c般,在将脉冲速度维持为固定的期间发生脉冲信号的中断,则会发生尖峰(spike)状的急剧的脉冲速度的变化。因急剧的脉冲速度的变化,在驱动装置为例如步进马达之类的马达的情况下,马达速度将急剧变化而发生异响或振动。进而,因马达速度的急剧变化,有时马达将不再与脉冲信号同步而失步。

因此,在脉冲输出单元16中,利用脉冲计数部165对脉冲输出部164实际输出的脉冲信号的脉冲数进行计数,由处理部162对计数所得的脉冲数与根据指令位置算出的脉冲数的误差进行修正。具体而言,处理部162根据误差来修正脉冲信号的速度(脉冲速度),以减小脉冲信号输出相对于指令的提前或延迟。脉冲输出单元16中,在每个控制周期所执行的输出脉冲运算处理(参照图6b)中进行脉冲速度的修正。

进一步详细说明输出脉冲运算处理。图8及图9是用于说明本实施方式中的脉冲输出单元16的输出脉冲运算处理的流程图。另外,图8所示的流程图中,对输出脉冲运算处理是在输出基于前次指令的脉冲信号的70%的时机开始的示例进行说明。但是,此时机仅为例示,并不限定于输出脉冲信号的70%的时机,只要是能够执行输出脉冲运算处理的时机,则为任何时机皆可。在输出脉冲运算处理中,主要执行脉冲提前/延迟判定处理及脉冲输出处理这两个处理。在脉冲提前/延迟判定处理中,首先,在从cpu单元13收到指令值而开始输出脉冲运算处理的时间点(输出基于前次指令的脉冲信号的70%的时机)算出所期待的脉冲数。在图8所示的流程图中,处理部162执行期待值的脉冲数=基于前次指令值而算出的脉冲数×0.7(步骤s21)来算出期待值的脉冲数。具体而言,若基于前次指令值而算出的脉冲数为120脉冲,则期待值的脉冲数为120×0.7=84脉冲。

接下来,在脉冲提前/延迟判定处理中,在由脉冲计数部165获取脉冲计数值的时机判定脉冲信号输出的提前或延迟。在图8所示的流程图中,处理部162从由图5所示的脉冲计数部165所获得的累积脉冲数开始,对从基于前次指令值而开始输出直至当前时间点为止的脉冲信号的脉冲数进行计数,并获取为脉冲计数值(步骤s22)。然后,处理部162执行提前/延迟脉冲数=在步骤s21中算出的期待值的脉冲数-在步骤s22中获取的脉冲计数值的处理(步骤s23),算出提前/延迟脉冲数。若在步骤s22中获取的脉冲计数值为比期待值的脉冲数即84脉冲大的值(例如90脉冲),则脉冲信号发生了提前,提前/延迟脉冲数成为负值。另一方面,若在步骤s22中获取的脉冲计数值为比期待值的脉冲数即84脉冲小的值(例如80脉冲),则脉冲信号发生了延迟,提前/延迟脉冲数成为正值。接下来,处理部162判断在步骤s23中算出的提前/延迟脉冲数是否为0(零(zero))(步骤s24)。若所算出的提前/延迟脉冲数为0(零)(步骤s24中为是(yes)),则处理部162判定为相对于预定时机而脉冲信号输出无提前/延迟(步骤s25)。若所算出的提前/延迟脉冲数并非0(零)(步骤s24中为否(no)),则处理部162判定为相对于预定时机而脉冲信号输出存在提前/延迟(步骤s26)。即,若提前/延迟脉冲数为负值,则处理部162判定为脉冲信号发生了提前,若提前/延迟脉冲数为正值,则处理部162判定为脉冲信号发生了延迟。

接下来,在脉冲输出处理中,以指令速度与所算出的提前/延迟脉冲数为基础来修正脉冲速度。图9所示的流程图是用于说明脉冲输出处理的流程图。首先,处理部162判定:是在图8所示的步骤s25中判定为相对于预定时机而脉冲信号输出无提前/延迟,还是在步骤s26中判定为相对于预定时机而脉冲信号输出存在提前/延迟(步骤s31)。若在步骤s26中判定为相对于预定时机而脉冲信号输出存在提前/延迟(步骤s31:是),则处理部162进行脉冲速度的修正(步骤s32)。另一方面,若在步骤s25中判定为相对于预定时机而脉冲信号输出无提前/延迟(步骤s31:否),则处理部162跳过(skip)脉冲速度的修正而进行脉冲输出处理(步骤s33)。处理部162在脉冲输出处理中,取代基于指令值的指令速度,而以在步骤s32中经修正的脉冲速度来输出至脉冲输出部164,使脉冲输出部164生成脉冲信号。

接下来,进一步详细说明步骤s32中的脉冲速度的修正。脉冲速度的修正是:若相对于指令的脉冲信号输出为提前,则使脉冲速度慢于指令速度,若相对于指令的脉冲信号输出为延迟,则使脉冲速度快于指令速度。但是,若修正脉冲速度的幅度过大,则与指令速度的背离将变大,脉冲速度会急剧变化。另一方面,若修正脉冲速度的幅度过小,则无法充分修正脉冲信号输出相对于指令的提前或延迟。因此,处理部162进行控制,以在控制周期的每一周期以规定的比例来修正脉冲信号的速度。例如,处理部162在控制周期的每一周期,以2%以内来修正脉冲信号的速度。

具体而言,作为处理部162在控制周期的每一周期以2%以内来修正脉冲信号的速度的一例,对将指令速度设为120000pps的情况进行说明。若处理部162将脉冲速度加快2%,则修正后的脉冲速度为120000×1.02=122400pps。而且,若处理部162将脉冲速度减慢2%,则修正后的脉冲速度为120000×0.98=117600pps。

接下来,使用图来说明在控制周期的每一周期以2%以内来修正脉冲信号的速度。图10a至图10c是用于对修正脉冲信号的脉冲速度进行说明的图。图10a中,例如图示了:当将指令速度设为120000pps时,在1ms(=0.001s)的控制周期内,脉冲数成为120脉冲的情况。

图10b表示在控制周期的每一周期使脉冲信号的速度加快约0.83%的修正。图10b中,修正后的脉冲速度为指令速度120000pps×1.083=约121000pps。因此,图10b中,在1ms(=0.001s)的控制周期内,脉冲数为121脉冲。

另一方面,图10c表示在控制周期的每一周期使脉冲信号的速度减慢约0.83%的修正。图10c中,修正后的脉冲速度为指令速度120000pps×0.917=约119000pps。因此,图10c中,在1ms(=0.001s)的控制周期内,脉冲数为119脉冲。

如至此为止所说明般,在脉冲输出单元16中,基于由脉冲计数部165所计数的脉冲数,由处理部162修正脉冲信号的速度(脉冲速度)。在脉冲输出单元16中,能够抑制急剧的脉冲速度的变化。图11a及图11b是用于对脉冲速度经修正后的脉冲信号进行说明的图。

图11a所示的波形中,脉冲信号输出相对于预定时机(指令1等的虚线位置)的提前量依照指令1、指令2的顺序而逐渐变大,但通过在脉冲输出单元16中修正脉冲速度而进行降速,从而在指令3中消除了脉冲信号输出相对于预定时机的提前。然而,因在修正中对脉冲速度进行了降速,因而在图11a所示的波形中,脉冲信号输出相对于预定时机的延迟量依照指令3、指令4的顺序而逐渐变大。因此,脉冲输出单元16在指令4中在输出相对于预定时机的脉冲信号的时机,修正脉冲速度而进行提速。通过在脉冲输出单元16中修正脉冲速度而进行提速,从而在指令5中消除了脉冲信号输出相对于预定时机的提前。另外,图11a所示的波形中,已通过脉冲输出单元16修正了脉冲速度,因此未发生图7a及图7b所示的脉冲信号的中断。

图11b是表示进行了脉冲速度修正时的脉冲速度的变化的图。在图11b中,脉冲输出单元16例如也进行下述控制,即,从开始脉冲信号的输出开始加大脉冲速度,在某值处将脉冲速度维持为固定,随后减小脉冲速度。脉冲输出单元16在将脉冲速度维持为固定的期间,进行脉冲速度的修正,由此,与图7c般的尖峰状的急剧的脉冲速度的变化相比,而调整为图11b般的平缓的变化。因此,脉冲输出单元16抑制了急剧的脉冲速度的变化,在驱动装置例如为步进马达4a、4b之类的马达的情况下,可控制马达速度不会急剧变化,以防止发生异响或振动。进而,脉冲输出单元16控制马达速度不会急剧变化,因此能够防止马达不再与脉冲信号同步而失步的现象。

如上所述,本实施方式的plc系统sys具备:驱动装置30、40,包含马达驱动器3a、3b及步进马达4a、4b;cpu单元13,对输出至驱动装置30、40的脉冲信号的脉冲数及脉冲速度进行指令;以及脉冲输出单元16,基于cpu单元13中的指令来对驱动装置30、40输出脉冲信号。脉冲输出单元16包含:时钟生成部163,生成时钟信号;脉冲输出部164,对时钟信号进行分频而生成脉冲信号,并在预定时机输出由cpu单元13所指令的脉冲数及脉冲速度的脉冲信号;脉冲计数部165,对所输出的脉冲信号的脉冲数进行计数;以及处理部162,基于脉冲数的误差,对由脉冲输出部164所生成的脉冲信号的脉冲速度进行修正。因此,在脉冲输出单元16中,能够修正脉冲信号输出相对于预定时机的提前或延迟,从而抑制脉冲信号的急剧的脉冲速度的变化。

而且,cpu单元13通过对位置进行指令来对脉冲信号的脉冲数进行指令,脉冲输出单元16根据此次指令的指令位置(位置数据)与前次指令的指令位置(位置数据)之差来求出所指令的脉冲信号的脉冲数。

进而,处理部162在从脉冲输出部164输出的脉冲信号相对于预定时机而提前的情况下,以比由cpu单元13所指令的脉冲速度慢的方式来修正脉冲速度。而且,处理部162在从脉冲输出部164输出的脉冲信号相对于预定时机而延迟的情况下,以比由cpu单元13所指令的脉冲速度快的方式来修正脉冲速度。因此,脉冲输出单元16能够抑制脉冲信号输出相对于预定时机的提前或延迟,从而抑制急剧的脉冲速度的变化。

处理部162在由cpu单元13对脉冲数及脉冲速度进行指令的控制周期的每一周期,对脉冲信号的1脉冲量的速度进行修正。因此,脉冲输出单元16对脉冲速度进行修正的幅度既不会过大也不会过小,能够适当地使脉冲速度发生变化。

(变形例)

(1)本实施方式的cpu单元13中,是通过对位置(图6a及图6b所示的指令位置)进行指令来对脉冲信号的脉冲数进行指令,但并不限定于此。cpu单元13也可根据此次的指令位置与前次的指令位置之差来算出脉冲信号的脉冲数,并将脉冲数直接指令给脉冲输出单元16。

(2)本实施方式的脉冲输出单元16中,说明了脉冲信号的提前或延迟的原因是由于对指令值(指令位置、指令速度)的整数进行四舍五入而引起的误差,但并不限定于此。脉冲输出单元16例如也会因脉冲速度的分辨力造成的误差或时钟生成部163自身的硬件的误差等,而发生脉冲信号的提前或延迟。此处,所谓因脉冲速度的分辨力造成的误差,是指因下述原因产生的误差,即:由于脉冲输出单元16所输出的脉冲信号是对时钟生成部163的时钟信号进行分频而生成,因此只能以可对时钟信号进行分频的范围(分辨力)来表达脉冲速度。所谓时钟生成部163自身的硬件的误差,是指因构成时钟生成部163的元件的精度或温度引起的特性变化等所产生的误差。

(3)本实施方式的脉冲输出单元16是作为plc系统sys的结构之一进行了说明,但并不限定于此。脉冲输出单元16例如也可为仅连接于上位控制器来对驱动装置进行驱动的结构。

(4)本实施方式的脉冲输出单元16中,对下述结构进行了说明,即,对由cpu单元13所指令的脉冲速度进行调整,以对脉冲信号输出相对于作为系统设定而预先对脉冲输出单元16所规定的时机的提前或延迟进行修正,但并不限定于此。例如,在图7a至图7c所示的波形中发生中断的情况下,脉冲输出单元16也可为继续输出中断之前所输出的脉冲信号的修正。

应认为,此次揭示的实施方式在所有方面仅为例示,并非限制者。本发明的范围是由权利要求而非所述说明所示,且意图包含与权利要求均等的含义及范围内的所有变更。

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