JP2009163423A - Program cooperation system and simulation control method therefor - Google Patents

Program cooperation system and simulation control method therefor Download PDF

Info

Publication number
JP2009163423A
JP2009163423A JP2007341116A JP2007341116A JP2009163423A JP 2009163423 A JP2009163423 A JP 2009163423A JP 2007341116 A JP2007341116 A JP 2007341116A JP 2007341116 A JP2007341116 A JP 2007341116A JP 2009163423 A JP2009163423 A JP 2009163423A
Authority
JP
Japan
Prior art keywords
application software
processing
synchronization
execution
execution order
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.)
Withdrawn
Application number
JP2007341116A
Other languages
Japanese (ja)
Inventor
Hiroko Hayashi
弘子 林
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2007341116A priority Critical patent/JP2009163423A/en
Publication of JP2009163423A publication Critical patent/JP2009163423A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To enhance the accuracy of simulation without deteriorating execution efficiency of the simulation by transferring event information to other processes within one synchronous period from the occurrence of an event. <P>SOLUTION: The program cooperation system includes a plurality of application software and a process connection means integrating the plurality of application software. According to priority information for executing the plurality of application software for one synchronous period, application software is started in the descending order of the priority information. When the processing of the highest-priority application for one synchronous period is completed, an instruction is made to start executing the application software with the next higher priority. When the processing of all the applications for one synchronous period is completed, the process proceeds to the next synchronization. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、独立プロセスとして動作する複数のアプリケーションソフトを中間インタフェースを介して連携動作させ、1つのシステムとして動作させるプログラム連携システムに関する。また、該プログラム連携システムにおけるシミュレーション制御方法に関するものである。   The present invention relates to a program linkage system in which a plurality of application softwares that operate as independent processes are linked and operated as a single system via an intermediate interface. The present invention also relates to a simulation control method in the program cooperation system.

従来のプログラム連携システムとして、例えば、下記特許文献1の機器制御シミュレーションにおいて、以下のようにシステムが構成されている。すなわち、装置を制御する中央処理装置(CPU)のシミュレータ(シミュレーションデバッガ)を有する。また、機器モデルのシミュレータ、その他、各種装置構成のシミュレータやシミュレーションを支援するシステムを受け持つアプリケーションソフト等を有する。なお、かかるアプリケーションソフトを、以下、まとめてシミュレータアプリケーションと呼ぶ。そして、下記特許文献1には、シミュレーション対象(CPUによるプログラム実行処理、仮想メカ部品の動作等)のシミュレーションにおいて、各々のプロセスに仮想時間をもつ場合の各プロセスの連携動作方法が例として示されている。   As a conventional program linkage system, for example, in the device control simulation of Patent Document 1 below, the system is configured as follows. That is, it has a central processing unit (CPU) simulator (simulation debugger) for controlling the apparatus. In addition, it includes a device model simulator, other application software simulators, and application software that handles a simulation support system. Such application software is hereinafter collectively referred to as a simulator application. Patent Document 1 below shows, as an example, a cooperative operation method for each process when each process has a virtual time in a simulation of a simulation target (program execution processing by a CPU, operation of a virtual mechanical component, etc.). ing.

前記のようなプログラム連携システムのアプリケーションソフト間での従来の連携動作形態について、模式図を図11に示す。図11のTsはシミュレーションシステム上の仮想時間での基準同期時間で、各アプリケーションソフト1〜3はTs時間の処理実行ごとに仮想時間を停止する。そして、全てのアプリケーションソフト1〜3がTs時間の処理実行を終了した後に、全アプリケーションソフト1〜3が一斉に次のTs時間の処理実行を開始する。   FIG. 11 shows a schematic diagram of a conventional cooperative operation mode between application software of the program cooperative system as described above. Ts in FIG. 11 is the reference synchronization time in the virtual time on the simulation system, and each of the application software 1 to 3 stops the virtual time every time the processing of the Ts time is executed. Then, after all the application software 1 to 3 have finished executing the process for the Ts time, all the application software 1 to 3 start executing the process for the next Ts time all at once.

前記機器制御シミュレーションのようなプログラム連携システムは、プロセス間の同期手段として、予め設定された仮想上の基準同期時間に従ってプロセス間の同期を行うプロセス接続手段を有している。従来のプロセス接続手段によるアプリケーションソフトの同期連携の状況を、図12に示す。   The program cooperation system such as the device control simulation has process connection means for synchronizing processes according to a preset virtual reference synchronization time as means for synchronizing processes. FIG. 12 shows the status of application software synchronization linkage by the conventional process connection means.

図12中の(1)でプロセス接続手段が各アプリケーションソフトに対して1同期時間Tsの処理実行を指示すると、各アプリケーションソフトはそれぞれの仮想時間によるTs分の処理実行を開始する(2),(3)。途中、アプリケーションソフト1で外部に対して報知すべき変化(以下、イベントと記す)が発生する(4)。プロセス接続手段は、アプリケーションソフト1からのイベントを受けて、アプリケーションソフト2にイベントを報知すると共に、各アプリケーションソフト1,2に対して残りの同期時間分の処理実行を指示する(5)。アプリケーションソフト2は(6)でイベント報知をされる。   When the process connection means instructs each application software to execute processing for one synchronization time Ts in (1) in FIG. 12, each application software starts executing processing for Ts according to the respective virtual time (2), (3). On the way, a change (hereinafter referred to as an event) to be notified to the outside by the application software 1 occurs (4). The process connection means receives the event from the application software 1, notifies the application software 2 of the event, and instructs the application software 1 and 2 to execute processing for the remaining synchronization time (5). The application software 2 is notified of the event in (6).

プロセス接続手段からの指示に従い、各アプリケーションソフト1,2はそれぞれ指示された仮想時間分の処理実行を開始する(7),(8)。ここで、残りの同期時間は、アプリケーションソフト1では(Ts-T1)、アプリケーションソフト2では(Ts-T2)になる。同期処理開始からアプリケーションソフト1のイベント発生までの時間は実時間上では同じ時間になる。しかし、それぞれのアプリケーションソフト1,2の実時間に対する仮想時間の進行速度が異なるため、仮想時間T1とT2とは異なる。   In accordance with the instruction from the process connection means, each of the application software 1 and 2 starts processing execution for the instructed virtual time (7) and (8). Here, the remaining synchronization time is (Ts-T1) in the application software 1 and (Ts-T2) in the application software 2. The time from the start of synchronization processing to the occurrence of an event of the application software 1 is the same in real time. However, the virtual times T1 and T2 are different from each other because the speed of the virtual time with respect to the real time of the application software 1 and 2 is different.

アプリケーションソフト2でイベントが発生(9)した場合も同様に、プロセス接続手段は、アプリケーションソフト1にイベントを報知すると共に、各アプリケーションソフト1,2に対して残りの同期時間分の処理実行を指示する(10)。各アプリケーションソフト1,2は、それぞれに指示された仮想時間分の処理を実行する(12),(13)。ここで、残りの同期時間は、アプリケーションソフト1では(Ts-(T1+T3))、アプリケーションソフト2では(Ts-(T2+T4))になる。   Similarly, when an event occurs in the application software 2 (9), the process connection means notifies the application software 1 of the event and instructs the application software 1 and 2 to execute processing for the remaining synchronization time. (10). Each of the application software 1 and 2 executes processing for the virtual time designated by each of the application software 1 and 2 (12) and (13). Here, the remaining synchronization time is (Ts− (T1 + T3)) in the application software 1 and (Ts− (T2 + T4)) in the application software 2.

そして、各アプリケーションソフト1,2は、指定時間分の処理を終了した時点でプロセス接続手段に処理終了を報知する(14),(16)。プロセス接続手段は、両方のアプリケーションソフト1,2からの同期処理終了報知を受け取る(15),(17)と、次の同期処理に移る。   The application software 1 and 2 notify the process connection means of the end of processing when the processing for the specified time is completed (14) and (16). When the process connection means receives the synchronization processing end notifications from both the application softwares 1 and 2 (15) and (17), the process connection unit proceeds to the next synchronization process.

プロセス接続手段は、(1)と同様にして、各アプリケーションソフト1,2に対して1同期時間Tsの処理実行開始を指示し(17)、各アプリケーションソフト1,2はTs時間分の処理実行を開始する(18),(19)。   As in (1), the process connection means instructs each application software 1 and 2 to start processing for one synchronization time Ts (17), and each application software 1 and 2 executes processing for Ts time. Starts (18), (19).

以上の処理を繰り返すことで、プロセス接続手段は複数のアプリケーションソフト間の同期連携を取っている。
特開2005-339029公報
By repeating the above processing, the process connection means is synchronized with a plurality of application software.
JP 2005-339029 A

しかしながら、従来の各プロセス間の連携動作方法では、1同期分の処理終了タイミングの前後関係が各プロセス間で不定なため、その同期内で発生したイベント情報が同一の同期処理内で他プロセスに伝わることが保証されない。   However, in the conventional cooperative operation method between processes, since the context of the processing end timing for one synchronization is indefinite between the processes, event information generated in the synchronization is transferred to other processes in the same synchronization processing. It is not guaranteed to be transmitted.

図13A及び図13Bは、図12のような同期処理を行って、連携動作するプロセスとしてアプリケーションソフト1,2をあるコンピュータシステム上で動作させた場合の例を示している。すなわち、実時間上でアプリケーションソフト1の1同期分の処理終了タイミングが、アプリケーションソフト2でのイベント(1-1,2-1)発生タイミングより前か後かで、イベント情報がアプリケーションソフト1に伝わるタイミングが異なる。   FIGS. 13A and 13B show an example in which the synchronization processing as shown in FIG. 12 is performed and the application software 1 and 2 are operated on a certain computer system as a process that performs a cooperative operation. In other words, whether the processing end timing for one synchronization of the application software 1 in real time is before or after the event (1-1, 2-1) occurrence timing in the application software 2, and the event information is stored in the application software 1. Transmission timing is different.

図13Aでは、アプリケーションソフト1の1同期時間分の処理実行終了が、アプリケーションソフト2のイベント(1-1)発生タイミングより後の場合である。一方、図13Bは、実時間上でアプリケーションソフト1の1同期目の処理実行終了が、アプリケーションソフト2のイベント(2-1)発生タイミングより前の場合である。なお、図13A及び図13Bのどちらの場合も、アプリケーションソフト2でのイベント発生は、1同期目の処理開始を基準として仮想時間T1時間経過した時点である。また、アプリケーションソフト1とアプリケーションソフト2の同期時間は、仮想時間Ts時間である。また、アプリケーションソフト1では、同期時間Tsごとにイベント(1-1,2-1)情報を参照した処理が行われるものとする。   In FIG. 13A, the end of processing execution for one synchronization time of the application software 1 is after the event (1-1) occurrence timing of the application software 2. On the other hand, FIG. 13B shows a case where the end of processing execution of the first synchronization of the application software 1 is before the event (2-1) occurrence timing of the application software 2 in real time. In both cases of FIGS. 13A and 13B, the event occurrence in the application software 2 is the time when the virtual time T1 has elapsed with reference to the start of the first synchronization process. The synchronization time between the application software 1 and the application software 2 is a virtual time Ts time. Further, it is assumed that the application software 1 performs processing referring to event (1-1, 2-1) information for each synchronization time Ts.

図13Aの場合、図12で先述したように、プロセス接続手段が各アプリケーションソフト1,2に対して1同期時間Tsの処理実行をすると、各アプリケーションソフト1,2はそれぞれの仮想時間によるTs分の処理実行を開始する。途中、アプリケーションソフト2でT1時間経過したところでイベント(1-1)が発生する。すると、プロセス接続手段は、アプリケーションソフト1にイベントを報知すると共に、各アプリケーションソフト1,2に対して残りの同期時間分の処理実行を指示する(1-2)。アプリケーションソフト1はイベント情報を受けて(1-4)、また、アプリケーションソフト2はプロセス接続手段からの処理実行指示を受けて(1-3)、残りの同期時間分の処理実行を行う。   In the case of FIG. 13A, as described above with reference to FIG. 12, when the process connection means executes processing for one synchronization time Ts with respect to each application software 1 and 2, each application software 1 and 2 has Ts corresponding to each virtual time. The process execution of is started. On the way, the event (1-1) occurs when T1 time elapses in the application software 2. Then, the process connection means informs the application software 1 of the event and instructs the application software 1 and 2 to execute processing for the remaining synchronization time (1-2). The application software 1 receives the event information (1-4), and the application software 2 receives the processing execution instruction from the process connection means (1-3) and executes the processing for the remaining synchronization time.

従って、アプリケーションソフト2で発生したイベント(1-1)情報がアプリケーションソフト1の処理内容に伝わるのは、1同期目の処理中である。但し、アプリケーションソフト1でイベント(1-1)情報を参照して行う処理が既に終了していた場合、イベント(1-1)情報を反映した処理が行われるのは、2同期目となる。   Accordingly, the event (1-1) information generated in the application software 2 is transmitted to the processing contents of the application software 1 during the first synchronization process. However, when the process performed by referring to the event (1-1) information in the application software 1 has already been completed, the process reflecting the event (1-1) information is performed at the second synchronization.

一方、図13Bの場合は、アプリケーションソフト1,2はそれぞれの仮想時間によるTs分の処理実行を開始し、アプリケーションソフト2でT1時間が経過したところでイベント(2-1)が発生する。イベント発生を受け、プロセス接続手段は、アプリケーションソフト1にイベントを報知し、アプリケーションソフト2へは残りの同期時間分(Ts-T1)の処理を継続するよう指示する(2-2)。アプリケーションソフト2は、プロセス接続手段からの残りの同期時間分の処理継続を受け(2-4)、処理実行を継続する。ここで、アプリケーションソフト1へイベントが報知されたタイミング(2-3)では、アプリケーションソフト1はすでに1同期目の処理実行を終了している。そのため、アプリケーションソフト2で発生したイベント(2-1)の変化は、アプリケーションソフト1の1同期目の処理には何ら反映されない。アプリケーションソフト1の処理にイベント(2-1)の情報が伝わるのは、アプリケーションソフト2が1同期目の処理実行を終え、各アプリケーションソフト1,2が2同期目の処理を開始したタイミング(2-5)になる。   On the other hand, in the case of FIG. 13B, the application software 1 and 2 start processing execution for Ts according to the respective virtual times, and the event (2-1) occurs when T1 time elapses in the application software 2. Upon receipt of the event, the process connection means notifies the application software 1 of the event, and instructs the application software 2 to continue processing for the remaining synchronization time (Ts-T1) (2-2). The application software 2 receives processing continuation for the remaining synchronization time from the process connection means (2-4), and continues processing execution. Here, at the timing (2-3) when the event is notified to the application software 1, the application software 1 has already finished the process of the first synchronization. For this reason, the change in the event (2-1) occurring in the application software 2 is not reflected in the first synchronization process of the application software 1. The information of the event (2-1) is transmitted to the process of the application software 1 when the application software 2 finishes executing the process of the first synchronization and each application software 1, 2 starts the process of the second synchronization (2 -5).

すなわち、アプリケーションソフト2で発生したイベント情報の伝達における同期遅れが発生する。そして、イベント(2-1)が反映された処理が行われるのは、2同期目になる。   That is, a synchronization delay occurs in the transmission of event information generated by the application software 2. The process reflecting the event (2-1) is performed at the second synchronization.

以上のように、各プロセス間の処理終了タイミングの前後関係によって、各プロセスの処理実行によって生じたイベント情報の伝達における同期遅れが発生することがある。また、イベント情報の伝達に同期遅れが発生しない場合においても、次のような場合が発生する。イベント情報が他アプリケーションソフトに伝達された時点で、イベント情報を参照して行う処理が既に終了していると、イベントが発生した同期から遅れてイベント情報を反映した処理が行われる。すなわち、イベント情報を処理内容に反映させるのが遅くなり、精度の悪いシミュレーションとなる。   As described above, there may be a synchronization delay in the transmission of event information caused by the processing execution of each process depending on the order of the processing end timing between the processes. Even when there is no synchronization delay in the transmission of event information, the following cases occur. If the process performed with reference to the event information has already been completed when the event information is transmitted to the other application software, the process reflecting the event information is performed with a delay from the synchronization in which the event occurred. In other words, the event information is delayed in reflecting the processing contents, resulting in an inaccurate simulation.

例えば、CPUシミュレータがアクチュエータ制御関連の値を設定し、周辺装置シミュレータが前記値に従って機器モデルシミュレータにモデル駆動を指示し、機器モデルシミュレータが前記指示に従ってモデル部品を動作させる場合を考える。上記各プロセスを連携させて、1つの機器制御シミュレーションシステムとして動作させるとする。従来の同期方法のように各プロセスを並列に実行していたのでは、まず、CPUシミュレータが設定したアクチュエータ制御関連の値の変更が、どのタイミングで周辺装置シミュレータに伝わるかが不定である。また同様にして、周辺装置シミュレータが設定した機器モデルシミュレータのモデル駆動信号の変更が機器モデルシミュレータにどのタイミングで伝わるかも不定である。従って、各プロセスの処理実行終了タイミングの前後関係によっては、CPUシミュレータがアクチュエータ制御関連の値を変更してから機器モデル部品が設定値の変更を反映した動作をするのに2同期分も遅延してしまうことになる。このような場合、精度の悪いシミュレーションとなってしまう。   For example, consider a case where the CPU simulator sets values related to actuator control, the peripheral device simulator instructs model driving to the equipment model simulator according to the values, and the equipment model simulator operates model parts according to the instructions. Assume that the above processes are linked to operate as one device control simulation system. If each process is executed in parallel as in the conventional synchronization method, first, it is uncertain at which timing the change of the actuator control-related value set by the CPU simulator is transmitted to the peripheral device simulator. Similarly, it is uncertain at what timing the change in the model drive signal of the device model simulator set by the peripheral device simulator is transmitted to the device model simulator. Therefore, depending on the context of the process execution end timing of each process, the device model component operates after reflecting the change of the set value after the CPU simulator changes the value related to the actuator control, and there is a delay of two synchronizations. It will end up. In such a case, the simulation is inaccurate.

ここで、シミュレーション精度を高める方法として、各プロセス間の同期間隔を短くする方法がある。しかし、同期間隔を短くすればするほど、各プロセスが行うシミュレーション処理に対して、同期を取るために前記プロセス接続手段の処理割合が大きくなってしまう。このような場合は、シミュレーション実行のオーバーヘッドが大きくなってしまう。   Here, as a method of improving the simulation accuracy, there is a method of shortening the synchronization interval between the processes. However, the shorter the synchronization interval, the greater the processing rate of the process connecting means for achieving synchronization with the simulation processing performed by each process. In such a case, the simulation execution overhead increases.

本発明は、複数のアプリケーションソフトが連携して動作するシミュレーションシステムにおいて、プロセス同士がシミュレーションの仮想時間の時間同期を取って動作する場合の、改善されたシミュレーションを実現する。すなわち、イベント発生から1同期以内で他プロセスにイベント情報が伝わるようにして、シミュレーションの実行効率を低下させることなくシミュレーションの高精度化を図るプログラム連携システム及びそのシミュレーション制御方法を提供する。   The present invention realizes an improved simulation in a case where a process operates in synchronization with a virtual time of simulation in a simulation system in which a plurality of application softwares operate in cooperation. In other words, a program linkage system and a simulation control method thereof are provided that can increase the accuracy of simulation without lowering the execution efficiency of simulation by transmitting event information to other processes within one synchronization from the occurrence of the event.

かかる課題を解決するために、本発明のプログラム連携システムは、コンピュータシステム上で独立のプロセスとして動作する複数のアプリケーションソフトと、前記複数のアプリケーションソフトを接続して1つのシステムとして動作させるプロセス接続手段とを含むプログラム連携システムにおいて、前記複数のアプリケーションソフトは、それぞれが固有の仮想時間により当該仮想時間の経過に対応した処理を行うアプリケーションソフトであり、前記プロセス接続手段は、一定の長さの仮想時間を1単位として、前記1単位ごとに前記複数のアプリケーションソフト間の仮想時間を一致させる同期処理を行う同期モジュールを備えており、前記同期モジュールは、前記複数のアプリケーションに1同期分の処理開始を指示する処理開始指示手段を有し、前記処理開始指示手段は、前記複数のアプリケーションソフトの1同期分の処理を実行させる順序情報に従って、前記複数のアプリケーションソフトに対して各アプリケーションソフトごとに1同期分の処理実行の開始を順次指示する順次処理開始指示手段を有することを特徴とする。   In order to solve such a problem, a program cooperation system according to the present invention includes a plurality of application software that operates as independent processes on a computer system, and a process connection unit that connects the plurality of application softwares to operate as a single system. The plurality of application software is application software that performs processing corresponding to the passage of the virtual time based on a specific virtual time, and the process connection means includes a virtual length of a certain length. Provided with a synchronization module that performs a synchronization process for matching the virtual time between the plurality of application software for each unit, with the time as one unit, and the synchronization module starts processing for one synchronization for the plurality of applications Instruct the process to open The processing start instruction means executes processing for one synchronization for each application software for the plurality of application software according to order information for executing processing for one synchronization of the plurality of application software. And a sequential process start instructing unit for sequentially instructing the start of the process.

ここで、前記順次処理開始指示手段は、前記順序情報において実行順序が高いアプリケーションソフトから処理実行の開始を指示し、実行を開始した前記実行順序が高いアプリケーションソフトの1同期分処理が終了した時点で、次に実行順序が高いアプリケーションソフトに処理実行の開始を指示し、前記複数のアプリケーションソフトの全ての1同期分の処理が終了した時点で、次の同期処理に移行する。また、前記順次処理開始指示手段は、前記順序情報において実行順序が同じであるアプリケーションソフトが複数存在する場合は、前記実行順序が同じアプリケーションソフトの全てへ同時に処理実行の開始を指示し、実行開始を指示した前記実行順序が同じ全てのアプリケーションソフトの1同期分処理が終了した時点で、次の実行順序が高いアプリケーションソフトに処理実行の開始を指示し、前記複数のアプリケーションソフトの全ての1同期分の処理が終了した時点で、次の同期処理に移行する。また、前記順次処理開始指示手段は、前記順序情報に、実行順序の指定があるアプリケーションソフトと実行順序の指定がないアプリケーションソフトとが混在していた場合に、実行順序の指定がないアプリケーションソフトへは他のアプリケーションソフトとの実行順序を考慮せず処理実行の開始を指示する。また、前記処理開始指示手段は、前記順序情報によらず前記複数のアプリケーションソフトの全てに1同期分の処理実行の開始を同時に指示する同時処理開始指示手段と、前記順次処理開始指示手段と前記同時処理開始指示手段とのどちらを使用して処理を行うかを切替える処理開始指示切替手段とを有する。また、前記順次処理開始指示手段は、ユーザがグラフィカルユーザインタフェースを介して設定した前記順序情報を取得する。   Here, the sequential processing start instructing means instructs the start of processing execution from the application software having a high execution order in the order information, and when the processing for one synchronization of the application software having the high execution order started is completed. Then, the application software having the next highest execution order is instructed to start processing execution, and when the processing for one synchronization of all of the plurality of application softwares is completed, the process proceeds to the next synchronization processing. In addition, when there are a plurality of application software having the same execution order in the order information, the sequential process start instructing means instructs all of the application software having the same execution order to start the process execution at the same time. When the processing for one synchronization of all the application software having the same execution order is instructed, the application software having the next higher execution order is instructed to start the processing execution, and all the one synchronization of the plurality of application softwares is synchronized. When the minute processing is completed, the process proceeds to the next synchronization processing. Further, the sequential processing start instructing unit is configured to switch to the application software having no execution order specified when the application information having the execution order specified and the application software having no execution order specified are mixed in the order information. Instructs the start of processing execution without considering the execution order with other application software. The process start instruction means includes a simultaneous process start instruction means for simultaneously instructing all of the plurality of application softwares to start processing execution for one synchronization irrespective of the order information, the sequential process start instruction means, And a process start instruction switching means for switching which of the simultaneous process start instruction means is used to perform the process. The sequential processing start instruction means acquires the order information set by the user via the graphical user interface.

また、本発明のシミュレーション制御方法は、コンピュータシステム上で独立のプロセスとして動作する複数のアプリケーションソフトと、前記複数のアプリケーションソフトを接続して1つのシステムとして動作させるプロセス接続手段とを含むプログラム連携システムにおけるシミュレーション制御方法であって、前記複数のアプリケーションソフトの1同期分の処理を実行させる順序情報に従って、前記順序情報において実行順序が高いアプリケーションソフトから処理実行の開始を指示するステップと、実行を開始した前記実行順序が高いアプリケーションソフトの1同期分処理が終了した時点で、次に実行順序が高いアプリケーションソフトに処理実行の開始を指示するステップと、前記複数のアプリケーションソフトの全ての1同期分の処理が終了した時点で、次の同期処理に移行するステップとを有することを特徴とする。   In addition, the simulation control method of the present invention includes a program cooperation system including a plurality of application software that operates as independent processes on a computer system, and a process connection unit that connects the plurality of application softwares to operate as a single system. A step of instructing start of processing execution from application software having a high execution order in the order information, in accordance with order information for executing processing for one synchronization of the plurality of application software, and starting execution When the processing for one synchronous of the application software with the higher execution order is completed, the step of instructing the application software with the next higher execution order to start processing, and all the ones of the plurality of application software When the processing in the period has been completed, characterized in that a step of migrating the next synchronization process.

さらに、上記シミュレーション制御方法のステップをコンピュータに実行させるためのプログラム、及び該プログラムを記憶したコンピュータで読み取り可能な記憶媒体を提供する。   Furthermore, a program for causing a computer to execute the steps of the simulation control method, and a computer-readable storage medium storing the program are provided.

本発明により、複数のアプリケーションソフトが連携して動作するシミュレーションシステムにおいて、プロセス同士がシミュレーションの仮想時間の時間同期を取って動作する場合の、改善されたシミュレーションを実現すできる。すなわち、イベント発生から1同期以内で他プロセスにイベント情報が伝わるようにして、シミュレーションの実行効率を低下させることなくシミュレーションの高精度化を図るプログラム連携システム及びそのシミュレーション制御方法を提供できる。   According to the present invention, in a simulation system in which a plurality of application softwares operate in cooperation with each other, it is possible to realize an improved simulation when processes operate in synchronization with the virtual time of simulation. In other words, it is possible to provide a program cooperation system and a simulation control method thereof that can improve the accuracy of simulation without reducing the execution efficiency of simulation by transmitting event information to other processes within one synchronization from the occurrence of the event.

また、独立プロセスとして動作する複数のアプリケーションソフトを連携動作させ、1つのシステムとして動作させるプログラム連携システムにおいて、シミュレーションの実行効率を低下させることなく、シミュレーションの高精度化を図ることができる。   Further, in a program linkage system in which a plurality of application softwares that operate as independent processes are linked to operate as a single system, it is possible to improve the accuracy of the simulation without reducing the execution efficiency of the simulation.

また、プログラム連携システムの全アプリケーションの依存関係を意識することなく、所望のアプリケーションソフト間においてシミュレーション精度を高めることができる。   In addition, it is possible to increase the simulation accuracy between desired application software without being aware of the dependency relationship of all applications in the program cooperation system.

また、シミュレーションを実行速度優先か、精度優先かユーザのニーズにあったシミュレーションを行うことができる。   In addition, the simulation can be performed according to the user's needs, whether execution speed is prioritized or accuracy is prioritized.

以下、本発明の実施形態を添付図面に従って詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

[実施形態1]
<実施形態1の特徴>
実施形態1では、複数の独立プロセスからなる機器制御シミュレーションシステムで、各プロセスがシミュレーション上の仮想時間で同期を取り機器制御シミュレーションを行う場合、各プロセスに定義付けられた実行順序に従って1同期分の処理を行う。同期処理は、各プロセスに定義付けられた実行順序が高いプロセスのシミュレーションからシーケンシャルに処理を実行し、全プロセスのシミュレーション1同期分処理が終了したことをもって、次の同期処理へ移行する。
[Embodiment 1]
<Features of Embodiment 1>
In the first embodiment, in a device control simulation system composed of a plurality of independent processes, when each process performs device control simulation in synchronization with a virtual time on the simulation, one synchronization portion is performed according to the execution order defined for each process. Process. In the synchronous process, a process is sequentially executed from a simulation of a process with a high execution order defined for each process, and the process proceeds to the next synchronous process when the process for one simulation of all processes is completed.

実行順序に従って各プロセスのシミュレーションを実行し、プロセス間の連携を取って機器制御シミュレーションを行うことで、各プロセスの処理実行によって生じたイベント情報の伝達における同期遅れが発生しなくなる。そのため、該プロセス処理が他のプロセス処理結果に依存するシミュレーションにおいて、シミュレーションの精度を高めることができる。   By executing the simulation of each process according to the execution order and performing the device control simulation in cooperation with each other, the synchronization delay in the transmission of event information caused by the processing execution of each process does not occur. Therefore, in the simulation in which the process processing depends on other process processing results, the simulation accuracy can be improved.

なお、実施形態1に係るプログラム連携システムの機器制御シミュレーションは、コンピュータシステムで実行されるプログラムとして実現されるものである。   Note that the device control simulation of the program cooperation system according to the first embodiment is realized as a program executed by a computer system.

<本実施形態を実行するプログラム連携システムの概略構成例>
図1は、本実施形態に係るプログラム連携システムの概略構成図である。
<Schematic configuration example of a program cooperation system that executes the present embodiment>
FIG. 1 is a schematic configuration diagram of a program cooperation system according to the present embodiment.

図1のプログラム連携システムを実現するコンピュータシステム501は、以下の構成要素を含んでいる。まず、中央演算装置(以下、CPUと呼ぶ)502a、主記憶装置(以下RAMと呼ぶ502b)、ハードディスク502c等を内蔵した本体部502を有する。かかる本体部502から指示により出力を行なう出力装置として画面表示を行う表示装置503を有する。また、本体部502への情報の入力を行なう入力装置として、コンピュータシステム501にユーザの指示や文字情報を入力するためのキーボード504を有する。また、表示装置503上の任意の位置を指定することにより、その位置に表示されていたアイコン等に応じた指示を入力するポインティングデバイス(マウス:登録商標)505を備えている。   A computer system 501 that implements the program linkage system of FIG. 1 includes the following components. First, it has a main unit 502 in which a central processing unit (hereinafter referred to as CPU) 502a, a main storage device (hereinafter referred to as RAM 502b), a hard disk 502c, and the like are built. A display device 503 that performs screen display is provided as an output device that outputs an instruction from the main body 502. In addition, as an input device for inputting information to the main unit 502, the computer system 501 includes a keyboard 504 for inputting user instructions and character information. In addition, a pointing device (mouse: registered trademark) 505 for inputting an instruction corresponding to an icon or the like displayed at the position by designating an arbitrary position on the display device 503 is provided.

ハードディスク502cには、機器制御シミュレーションにおける各機能を実現したプログラム、シミュレーションの対象となる機器情報を含むシミュレーションのための各種データが格納される。シミュレーションに際しては、前記プログラム、各種データを前記RAM502bにロードし、前記コンピュータシステム501のCPU502aによってプログラムが実行される。   The hard disk 502c stores a program that realizes each function in the device control simulation and various data for simulation including device information to be simulated. In the simulation, the program and various data are loaded into the RAM 502b, and the program is executed by the CPU 502a of the computer system 501.

これらコンピュータシステム501の基本動作は、基本プログラムであるオペレーティングシステム(以下、OSと記す)を介して実行される。以下、本実施形態ではコンピュータシステム501のOSを、Microsoft社のWindows OS(登録商標)の例で説明する。しかし、本発明はWindows OS(登録商標)上のシステムに限定されるものではない。   These basic operations of the computer system 501 are executed via an operating system (hereinafter referred to as OS) which is a basic program. Hereinafter, in this embodiment, the OS of the computer system 501 will be described using an example of Windows OS (registered trademark) of Microsoft Corporation. However, the present invention is not limited to a system on Windows OS (registered trademark).

<本実施形態のプログラム連携システムの機能構成例>
図2は、本実施形態に係るプログラム連携システムの機能構成図である。
<Functional configuration example of the program linkage system of this embodiment>
FIG. 2 is a functional configuration diagram of the program cooperation system according to the present embodiment.

図2に示すように、このプログラム連携システムは、システムを構成する3つのアプリケーションソフトとプロセス接続手段とを備えている。3つのアプリケーションソフトは、CPUシミュレータ601と、シミュレータアプリケーション602と、機構モデルシミュレータ603とである。また、プロセス接続手段は、シミュレータハブ(以下、HUBと記す)604である。   As shown in FIG. 2, this program cooperation system includes three application software and process connection means that constitute the system. The three application softwares are a CPU simulator 601, a simulator application 602, and a mechanism model simulator 603. The process connection means is a simulator hub (hereinafter referred to as HUB) 604.

CPUシミュレータ601、シミュレータアプリケーション602、機構モデルシミュレータ603は、それぞれがWindows(登録商標) OS上で個別に動作するアプリケーションソフトで、それぞれが独立したプロセスとして存在する。更に、シミュレータアプリケーション602は、機能によって複数の独立プロセスで構成される場合がある。   The CPU simulator 601, the simulator application 602, and the mechanism model simulator 603 are application software that individually operates on a Windows (registered trademark) OS, and exist as independent processes. Furthermore, the simulator application 602 may be configured by a plurality of independent processes depending on functions.

本実施形態において、CPUシミュレータ601は、ダイナミックリンクライブラリ(以下、DLLと記す)で提供される外部モジュールとの間で共有メモリ、及び、関数の直接呼出し方式による外部インタフェースを有している。また、シミュレータアプリケーション602、機構モデルシミュレータ603は、ソケットインタフェースによるプロセス間通信方式による外部インタフェースを有している。   In this embodiment, the CPU simulator 601 has a shared memory with an external module provided by a dynamic link library (hereinafter referred to as DLL), and an external interface based on a function direct call method. Moreover, the simulator application 602 and the mechanism model simulator 603 have an external interface based on an interprocess communication method using a socket interface.

HUB604は、前記CPUシミュレータ601の直接呼出し方式の外部インタフェースを利用するためにDLLとして提供され、CPUシミュレータ601から起動されるサブプロセスとして動作する。CPUシミュレータ601は、各種イベント発生時に、予め指定されたHUB604のコールバック関数を呼び出す。HUB604を構成するシステム管理モジュール605−1、同期モジュール605−2、配線モジュール605−3、ログモジュール605−4、インタフェースモジュール606−1〜3の各モジュールは、それぞれ独立したスレッドとして動作する。各スレッドは、CPUシミュレータ601の起動時に呼び出されるコールバック関数から起動される。シミュレータアプリケーション602、機構モデルシミュレータ603は、OSの提供するアプリケーションプログラムインタフェースを使用して、ソケットインタフェースを介してHUB604との接続を行う。   The HUB 604 is provided as a DLL in order to use the external interface of the CPU simulator 601 that is a direct call method, and operates as a sub process started from the CPU simulator 601. The CPU simulator 601 calls a callback function of the HUB 604 designated in advance when various events occur. The system management module 605-1, synchronization module 605-2, wiring module 605-3, log module 605-4, and interface modules 606-1 to 606-3 constituting the HUB 604 operate as independent threads. Each thread is activated from a callback function that is called when the CPU simulator 601 is activated. The simulator application 602 and the mechanism model simulator 603 use the application program interface provided by the OS to connect to the HUB 604 via the socket interface.

次に、プログラム連携システムの各構成要素の機能について説明する。   Next, the function of each component of the program cooperation system will be described.

(CPUシミュレータ601の機能)
CPUシミュレータ601は、シミュレーション対象となるCPU(以下、ターゲットCPUと呼ぶ)の動作を、コンピュータシステム501上で実現する機能である。ここで、ターゲットCPUとは、コンピュータシステム501に搭載されているCPUではなく、シミュレーションの対象となる装置(本具体例ではプリンタ装置)に搭載され、該装置を制御するためのCPUのことである。
(Function of CPU simulator 601)
The CPU simulator 601 is a function that realizes the operation of a CPU to be simulated (hereinafter referred to as a target CPU) on the computer system 501. Here, the target CPU is not a CPU mounted on the computer system 501 but a CPU that is mounted on a device to be simulated (a printer device in this specific example) and controls the device. .

CPUシミュレータ601は、ターゲットCPUの制御プログラム(以下、ターゲットファームウエアと呼ぶ)に従って、ターゲットCPUの端子に対応して定義された仮想入力端子の情報を読み込み、仮想出力端子を制御する。   The CPU simulator 601 reads information on the virtual input terminals defined corresponding to the terminals of the target CPU and controls the virtual output terminals in accordance with the control program for the target CPU (hereinafter referred to as target firmware).

また、CPUシミュレータ601は、ターゲットCPUのアドレス空間に対応した仮想アドレス空間を用意している。ここで、仮想アドレス空間とは、ターゲットCPUの管理するアドレス空間上の個々の領域と1対1で対応する領域をコンピュータシステム501のRAM上に定義したものである。仮想アドレス空間のコンピュータシステム501上の実アドレス値は、ターゲットCPUの扱うアドレス値と異なる。そして、CPUシミュレータ601は、ターゲットファームウエアによるターゲットCPUアドレス空間上のアドレス値へのアクセス命令に従って、仮想アドレス空間上の対応する領域にアクセスする。また、ターゲットCPUのレジスタ類も、前記仮想アドレス空間上に対応する領域が設定され、レジスタ類へのアクセスも仮想アドレス空間へのアクセスによってシミュレーションされる。CPUシミュレータ601は、外部インタフェースとしてターゲットCPUのI/Oメモリ、レジスタアクセスのためのメソッドを用意している。外部モジュールは、これらのメソッドにより前記仮想アドレス空間へのアクセスを行う。   The CPU simulator 601 prepares a virtual address space corresponding to the address space of the target CPU. Here, the virtual address space is defined on the RAM of the computer system 501 as an area corresponding to each area on the address space managed by the target CPU on a one-to-one basis. The real address value on the computer system 501 in the virtual address space is different from the address value handled by the target CPU. Then, the CPU simulator 601 accesses a corresponding area in the virtual address space in accordance with an access command to the address value in the target CPU address space by the target firmware. In the registers of the target CPU, corresponding areas are set on the virtual address space, and access to the registers is simulated by accessing the virtual address space. The CPU simulator 601 provides a target CPU I / O memory and a method for register access as an external interface. The external module accesses the virtual address space using these methods.

コンピュータシステム501上でのターゲットファームウエアの処理のシミュレーション方法としては、ターゲットファームウエアのソースプログラムをコンピュータシステム501のネイティブ言語に変換して実行する方式がある。また、ターゲットCPUの実行命令を1語ずつ解釈し、コンピュータシステム501のCPUに対応した実行命令に翻訳しながら実行する方式がある。本実施形態は、何れのCPUシミュレーション方式にも対応する。   As a method for simulating the processing of the target firmware on the computer system 501, there is a method of executing the target firmware source program after converting it into the native language of the computer system 501. Further, there is a method of interpreting the execution instruction of the target CPU one word at a time and executing it while translating it into an execution instruction corresponding to the CPU of the computer system 501. This embodiment corresponds to any CPU simulation method.

前記のように、CPUシミュレータ601のイベント毎に、HUB604のコールバック関数が呼び出される。CPUシミュレータ601が前記コールバック関数を呼び出すイベントの例としては、CPUシミュレータ601の状態に関するもの(起動、初期化終了等)がある。また、ターゲットCPUの動作シミュレーション上のイベント(メモリアクセス、割り込み発生等)がある。   As described above, the callback function of the HUB 604 is called for each event of the CPU simulator 601. As an example of an event for the CPU simulator 601 to call the callback function, there are events related to the state of the CPU simulator 601 (activation, initialization end, etc.). In addition, there are events (memory access, interrupt occurrence, etc.) on the operation simulation of the target CPU.

(シミュレータアプリケーション602の機能)
シミュレータアプリケーション602は、機器制御シミュレーションシステムによる各種試験のための支援プログラムであり、仮想装置に対する各種働きかけの設定や、シミュレーションの結果を解析、表示、保存する機能をもつ。
(Function of simulator application 602)
The simulator application 602 is a support program for various tests by the device control simulation system, and has functions for setting various actions for the virtual device and analyzing, displaying, and saving the simulation results.

シミュレーションの対象となる実際の装置は、その装置を使用するオペレータやその装置に接続されたコンピュータシステム等により外部から様々な働きかけ(以下、外部事象と記す)を受けて動作する。シミュレータアプリケーション602は、これら外部事象のうち、機構モデルシミュレータ603(詳細は後述する)で設定されるメカニカルな外部事象以外のものを擬似的に設定する手段を提供する。本実施形態における対象装置であるプリンタ装置の具体例では、メカニカルな外部事象としては給紙カセットの操作や消耗部品の取り外し、取り付け等が挙げられる。一方、それ以外の外部事象としては、ホストPCからの各種命令の受信、オペレータによるオペレーションパネルの操作、環境温度の変化等が挙げられる。   An actual device to be simulated is operated in response to various external actions (hereinafter referred to as external events) by an operator who uses the device or a computer system connected to the device. The simulator application 602 provides means for artificially setting those external events other than the mechanical external events set by the mechanism model simulator 603 (details will be described later). In a specific example of the printer device that is the target device in this embodiment, mechanical external events include operation of a paper feed cassette, removal and attachment of consumable parts, and the like. On the other hand, other external events include reception of various commands from the host PC, operation of the operation panel by the operator, change in environmental temperature, and the like.

シミュレータアプリケーション602は、これらを設定するための専用のユーザインタフェース(以下、UIと記す)を提供する。また、シミュレータアプリケーション602は、当該UIによる設定に従って、HUB604を介してCPUシミュレータ601や機構モデルシミュレータ603に所定の外部事象を加える。また、シミュレータアプリケーション602は、コンピュータシステム501のハードディスクに格納された、連続した外部事象の設定手順を記述したマクロ命令ファイルや一連の外部事象データを記述したファイルを、必要に応じて読み出す。そして、HUB604を介してCPUシミュレータ601や機構モデルシミュレータ603に対して一連の外部事象を与える。   The simulator application 602 provides a dedicated user interface (hereinafter referred to as UI) for setting them. Further, the simulator application 602 adds a predetermined external event to the CPU simulator 601 and the mechanism model simulator 603 via the HUB 604 according to the setting by the UI. Further, the simulator application 602 reads a macro instruction file describing a procedure for setting consecutive external events and a file describing a series of external event data stored in the hard disk of the computer system 501 as necessary. Then, a series of external events are given to the CPU simulator 601 and the mechanism model simulator 603 via the HUB 604.

前記のような外部事象の設定機能のほかに、シミュレータアプリケーション602は、シミュレーションの結果として出力される各種データを解析、評価する。そして、試験目的に応じた各種情報を表示装置505に表示する機能や、ハードディスクに保存する機能を有している。具体的には、各種信号の変化をタイミングチャートとして表示する機能や、一連の動作を予め想定された動作と比較してその正当性を評価する、また、不正な事象を可視的に表示する等の機能を有している。   In addition to the external event setting function as described above, the simulator application 602 analyzes and evaluates various data output as a result of simulation. And it has the function to display the various information according to the test objective on the display apparatus 505, and the function to preserve | save to a hard disk. Specifically, a function that displays changes in various signals as a timing chart, a series of operations is compared with operations that are assumed in advance, and their legitimacy is evaluated, and illegal events are visually displayed. It has the function of

(機構モデルシミュレータ603の機能)
機構モデルシミュレータ603は、アクチュエータ、センサを含む複数の部品からなる機構モデルを、前記コンピュータ上で擬似的に動作させる機能である。機構モデルの各要素(以下、機構部品と呼ぶ)は、ユーザにより形状、種類、動作、機構部品間の干渉と連携条件等が定義される。更に、センサ、アクチュエータについては外部信号定義が行われる。これら機構部品の定義は、CAD図面からの自動設定、専用の機構モデル作成ソフトウエアをユーザが操作して設定、その両方の組み合わせで設定するなどして行われる。
(Function of mechanism model simulator 603)
The mechanism model simulator 603 is a function for operating a mechanism model composed of a plurality of parts including actuators and sensors on the computer in a pseudo manner. Each element of the mechanism model (hereinafter referred to as a mechanism part) is defined by the user in terms of shape, type, operation, interference between mechanism parts, linkage conditions, and the like. Further, external signals are defined for sensors and actuators. These mechanical parts are defined by automatic setting from a CAD drawing, setting by operating a dedicated mechanism model creation software by a user, or a combination of both.

前記のように定義される機構部品の種類としては、単なる物体と定義されるものと機能定義がなされるもの(モータ、ソレノイド、クラッチ、センサ、歯車、カム、ローラ等)がある。また、機構部品には、対象となる装置の構成物ではないもので装置の動作シミュレーションに必要なもの(プリンタ装置における用紙等)も含まれる。また、前記のように構築された機構モデルは、コンピュータシステム501の表示装置503上に、2次元又は3次元のグラフィックとして表示される。   The types of mechanical parts defined as described above include those defined as simple objects and those defined as functions (motors, solenoids, clutches, sensors, gears, cams, rollers, etc.). In addition, the mechanical parts include those that are not components of the target device and that are necessary for the operation simulation of the device (such as paper in a printer device). The mechanism model constructed as described above is displayed as a two-dimensional or three-dimensional graphic on the display device 503 of the computer system 501.

機構モデルシミュレータ603は、CPUシミュレータ601からHUB604を介して送られてきたアクチュエータ動作信号に対応して、該当するアクチュエータの機構モデルを定義された動きで動作させる。(アクチュエータ動作信号は、CPUシミュレータ601からHUB604を介してシミュレータアプリケーション602に入力されたデータを、シミュレータアプリケーション602で任意に加工する。そして、シミュレータアプリケーション602から再びHUB604を介して機構モデルシミュレータ603に送られる場合もある。)そして、機構定義に基づきアクチュエータに連結された機構部品をアクチュエータの動作に関連付けて定義された動きで動作させる。また、オペレータの操作により動作する機構については、前記キーボード504、マウス505によってオペレータによる機構部品への操作を擬似的に再現し、擬似操作に応じて対象となる機構部品を定義された動きで動作させる。更に、機構部品間の干渉、連携定義に従い、関連する全ての機構部品の動作が再現される。   The mechanism model simulator 603 operates the mechanism model of the corresponding actuator with a defined motion in response to the actuator operation signal sent from the CPU simulator 601 via the HUB 604. (Actuator operation signal arbitrarily processes data input from the CPU simulator 601 to the simulator application 602 via the HUB 604 by the simulator application 602. Then, the simulator application 602 sends the data again to the mechanism model simulator 603 via the HUB 604. Then, based on the mechanism definition, the mechanical component connected to the actuator is operated with the movement defined in association with the operation of the actuator. As for the mechanism operated by the operator's operation, the operation of the mechanical part by the operator is simulated by the keyboard 504 and the mouse 505, and the target mechanical part is operated in a defined motion according to the pseudo operation. Let Furthermore, the operation of all related mechanical components is reproduced according to the interference between the mechanical components and the linkage definition.

これら機構部品の動作は、前記表示装置503に表示されたグラフィックとして再現される。同時に、機構モデルの動作の結果、センサとして定義された機構モデルに予め定義された外部事象が発生すると、外部事象に応じたセンサ信号を発生させ、そのセンサ信号は、CPUシミュレータ601にHUB604を介して送信される。   The operation of these mechanical components is reproduced as a graphic displayed on the display device 503. At the same time, when a predefined external event occurs in the mechanical model defined as a sensor as a result of the operation of the mechanical model, a sensor signal corresponding to the external event is generated, and the sensor signal is sent to the CPU simulator 601 via the HUB 604. Sent.

(シミュレータハブ604の機能)
HUB604は、コア部605とインタフェース部606とから構成される。コア部605は、システム管理モジュール605−1、同期モジュール605−2、配線モジュール605−3、ログモジュール605−4から構成される。また、インタフェース部606は、HUB604の外部インタフェースを各周辺シミュレーションツールのインタフェース仕様に対応させる各々のインタフェースモジュール606−1〜3から構成される。そして、コア部605と各周辺シミュレーションツールとの接続を仲介する。また、HUB604は、CPUシミュレータ601やシミュレーショタアプリケーション602、および機器モデルシミュレータ603などの他のアプリケーションとは独立したプロセスで動作している。
(Function of simulator hub 604)
The HUB 604 includes a core unit 605 and an interface unit 606. The core unit 605 includes a system management module 605-1, a synchronization module 605-2, a wiring module 605-3, and a log module 605-4. The interface unit 606 includes interface modules 606-1 to 606-3 that make the external interface of the HUB 604 correspond to the interface specifications of each peripheral simulation tool. And it mediates the connection between the core unit 605 and each peripheral simulation tool. The HUB 604 operates in a process independent of other applications such as the CPU simulator 601, the simulator application 602, and the device model simulator 603.

コア部605は、システム構成に合わせたHUBモジュールの設定を行なう。また、CPUシミュレータ601、シミュレータアプリケーション602、機構モデルシミュレータ603(以下、まとめて周辺シミュレーションツールと記す)間のデータ伝送管理、同期処理、データ伝送履歴(以下、ログと記す)取得を行う。   The core unit 605 sets the HUB module according to the system configuration. Further, data transmission management, synchronization processing, and data transmission history (hereinafter referred to as a log) acquisition between the CPU simulator 601, the simulator application 602, and the mechanism model simulator 603 (hereinafter collectively referred to as a peripheral simulation tool) are performed.

インタフェース部606は、予め設定された端子定義情報に基づき各周辺シミュレーションツールと配線モジュール605−3との接続を行う。そして、周辺シミュレーションツールからのデータ出力に応じて、配線モジュール605−3のデータ送受信メソッドを呼び出してデータを配線モジュール605−3に渡す。一方、配線モジュール605−3からのデータ設定要求に応じて周辺シミュレーションツールにデータを送る。また、同期モジュール605−2の同期時間分の処理実行開始指示に応じて、各アプリケーションに所定の同期間隔での動作を指示し、各アプリケーションの1同期分処理終了を同期モジュール605−2に報知する。   The interface unit 606 connects each peripheral simulation tool and the wiring module 605-3 based on preset terminal definition information. Then, according to the data output from the peripheral simulation tool, the data transmission / reception method of the wiring module 605-3 is called to pass the data to the wiring module 605-3. On the other hand, data is sent to the peripheral simulation tool in response to a data setting request from the wiring module 605-3. Further, in response to a process execution start instruction for the synchronization time of the synchronization module 605-2, each application is instructed to operate at a predetermined synchronization interval, and the synchronization module 605-2 is notified of the end of the process for one synchronization of each application. To do.

外部インタフェース607は、オペレータがシミュレーションを行うために必要なシミュレーションシステム環境情報を、前記システム管理モジュール605−1に渡す際のインタフェースとなる。シミュレーションシステム環境情報としては、例えば、各アプリケーション間での連携動作に必要な情報が含まれる。   The external interface 607 serves as an interface for passing simulation system environment information necessary for the operator to perform simulation to the system management module 605-1. The simulation system environment information includes, for example, information necessary for cooperative operation between the applications.

システム管理モジュール605−1は、予め設定されたシステム構成定義情報に応じて、インタフェースモジュール606の構成を管理する。また、外部インタフェース607を介して設定された連携動作を決定するための情報を管理する。   The system management module 605-1 manages the configuration of the interface module 606 in accordance with preset system configuration definition information. Also, information for determining the cooperative operation set via the external interface 607 is managed.

配線モジュール605−3は、予め設定された配線定義情報をもとに、周辺シミュレーションツール間を接続する。また、配線モジュール605−3は、各インタフェースモジュール606−1〜3に対して、データ送受信のメソッドを提供する。   The wiring module 605-3 connects the peripheral simulation tools based on the wiring definition information set in advance. The wiring module 605-3 provides a data transmission / reception method to each of the interface modules 606-3.

ログモジュール605−4は、配線モジュール605−3と各インタフェースモジュール606−1〜3間でやり取りされる送受信データを、シミュレーション時間情報とともに所定の書式でファイルに記録する。このとき、シミュレータアプリケーション602によるタイミングチャートの作成、試験結果の解析、評価は、ログモジュール605−4によって取得したログ情報を使用する。   The log module 605-4 records transmission / reception data exchanged between the wiring module 605-3 and each interface module 606-3 in a file in a predetermined format together with simulation time information. At this time, creation of a timing chart, analysis of a test result, and evaluation by the simulator application 602 use log information acquired by the log module 605-4.

同期モジュール605−2は、各アプリケーションがもつ固有の仮想時間の一定仮想時間を1単位として、前記1単位ごとに全アプリケーションソフト間の仮想時間を一致させる同期処理を行う。同期モジュール605−2は、各インタフェースモジュール606−1〜3を介して、それぞれの周辺シミュレーションツールに予め定義した1同期分の処理実行開始を指示する処理開始指示手段605−2−1を有している。そして、各インタフェースモジュール606−1〜3を介してそれぞれの周辺シミュレーションツールから1同期間隔の動作終了の通知を受ける。全周辺シミュレーションツールから1同期間隔の動作終了通知を受けた時点で、次の1同期の実行処理に移る。以上の処理の繰り返しにより、機器制御シミュレーションシステムを構成する全システムを同じ仮想時間の中で動作させることができる。   The synchronization module 605-2 performs a synchronization process in which the virtual time between all the application software is matched for each unit, with the fixed virtual time of the unique virtual time of each application as one unit. The synchronization module 605-2 has processing start instruction means 605-2-1 for instructing each peripheral simulation tool to start processing execution for one synchronization through the interface modules 606-1 to 606-3. ing. Then, notification of the end of operation at one synchronization interval is received from each peripheral simulation tool via each interface module 606-1 to 606-3. When a notification of operation completion at one synchronization interval is received from all peripheral simulation tools, the process proceeds to the next one synchronization execution process. By repeating the above processing, all the systems constituting the device control simulation system can be operated in the same virtual time.

このような同期処理において、従来は各周辺シミュレーションツールに対する1同期間隔の実行を一斉に指示していたが、本実施形態では、前記のような基本動作に、順次処理開始指示手段605−2−2による処理が付加される。順次処理開始指示手段605−2−2は、複数のアプリケーションソフトの中で各プリケーションソフトの1同期分の処理を実行させる順序情報に従って、各アプリケーションソフトに1同期分の処理実行を順次指示する。すなわち、前記順次処理開始指示手段605−2−2は、各プロセスに定義付けられたシミュレーションの実行順序に従って、周辺シミュレーションツールに同期間隔分の処理実行を指示する手段である。   In such synchronization processing, conventionally, execution of one synchronization interval for all peripheral simulation tools has been instructed all at once, but in this embodiment, sequential processing start instructing means 605-2 in the basic operation as described above. 2 is added. The sequential processing start instructing means 605-2-2 sequentially instructs each application software to execute processing for one synchronization according to the order information for executing processing for one synchronization of each application software among a plurality of application software. . That is, the sequential processing start instruction means 605-2-2 is a means for instructing the peripheral simulation tool to execute processing for the synchronization interval in accordance with the simulation execution order defined for each process.

<実施形態1の順次処理開始指示手段605−2−2の制御手順例>
図3は、実施形態1の順次処理開始指示手段605−2−2の制御フローチャートである。以下では、プロセス処理実行順序変数Pn、全プロセス数Nとする。また、本実施形態では、実行順序は“1”から指定可能であり、実行順序の数字が小さいほど実行順序が高くなるものとする。
<Control Procedure Example of Sequential Process Start Instructing Unit 605-2-2 of Embodiment 1>
FIG. 3 is a control flowchart of the sequential processing start instruction unit 605-2-2 according to the first embodiment. Hereinafter, the process processing execution order variable Pn and the total number of processes N are assumed. In the present embodiment, the execution order can be designated from “1”, and the execution order becomes higher as the execution order number is smaller.

まず、ステップS101で、プロセス処理実行順序変数Pnを“1”に初期化する。次に、ステップS102で、Pn≦Nが成立するか否かをチェックする。ステップS102のチェックでPn≦Nが成立する場合は、ステップS103へ進み、実行順序Pnのプロセスに基準同期時間分のシミュレーション処理(以下、単に処理と記す)実行を指示する。ステップS102のチェックでPn≦Nが不成立する場合は、ステップS106でシミュレーションの終了か否かを判定する。シミュレーションの終了でなければステップS101へ戻り、Pnの初期化を行う。   First, in step S101, the process processing execution order variable Pn is initialized to “1”. Next, in step S102, it is checked whether Pn ≦ N is satisfied. When Pn ≦ N is established in the check in step S102, the process proceeds to step S103, and a simulation process (hereinafter simply referred to as a process) for the reference synchronization time is instructed to the process in the execution order Pn. If Pn ≦ N is not satisfied in the check in step S102, it is determined in step S106 whether or not the simulation is completed. If the simulation is not finished, the process returns to step S101 to initialize Pn.

ステップS103で実行順序Pnのプロセスに基準同期時間分の処理実行を指示した後、処理実行を指示した実行順序Pnのプロセスから処理実行終了通知を受けるまで待つ(ステップS104)。ステップS104で実行終了通知を受けたら、プロセス処理実行順序Pnを1つ進め(ステップS105)、ステップS102のPn≦Nの成立チェックに戻る。   After instructing the process in the execution order Pn to execute the process for the reference synchronization time in step S103, the process waits until a process execution end notification is received from the process in the execution order Pn instructed to execute the process (step S104). When the execution end notification is received in step S104, the process process execution order Pn is advanced by one (step S105), and the process returns to the establishment check of Pn ≦ N in step S102.

ここで、実行優先順位が同じプロセスが複数存在する場合は、ステップS103で実行順序が同じプロセスに同時に処理実行開始を指示し、ステップS104で実行順序が同じ全プロセスから実行処理終了通知を受け取るまで待つことになる。   Here, if there are a plurality of processes having the same execution priority, in step S103, the processes having the same execution order are instructed to start processing simultaneously, and in step S104, execution process end notifications are received from all processes having the same execution order. I will wait.

図3のように、順次処理開始指示手段605−2−2は、プロセスの処理実行開始を制御し、定義つけられたプロセス処理の実行順序に従って、実行順序の高いプロセスから処理実行開始指示を出す。そして、処理開始指示を出したプロセスから処理実行終了通知を受けた時点で、次の実行順序のプロセスに処理実行開始を指示する。各プロセスの処理実行中に発生したイベントは、各インタフェースモジュール606−1〜3を介して配線モジュール605−3に伝達され、配線モジュールから他プロセスに情報が伝達される。   As shown in FIG. 3, the sequential process start instruction unit 605-2-2 controls the process execution start of the process, and issues a process execution start instruction from a process having a higher execution order according to the defined process process execution order. . When a process execution end notification is received from the process that issued the process start instruction, the process execution start is instructed to the process in the next execution order. Events that occur during processing execution of each process are transmitted to the wiring module 605-3 via the interface modules 606-1 to 606-3, and information is transmitted from the wiring module to other processes.

なお、前述したように各プロセス(シミュレーションツール)と配線モジュール605−3は、予め設定された端子定義情報に基づき接続されている。ここで、他プロセスの処理結果により自プロセスの処理内容が変わる対象物のシミュレートを行うプロセス(以下、被制御プロセスと呼ぶ)の処理実行順序を低くする。その結果、1同期分の処理を行う時に、必ず実行順序が高いプロセスの処理実行結果を受けて、被制御プロセスの処理を行うことになる。従って、被制御プロセスにおいて、実行順序が高いプロセスの処理で発生したイベント情報を、イベントが発生した同期内の処理に反映させることができる。   As described above, each process (simulation tool) and the wiring module 605-3 are connected based on terminal definition information set in advance. Here, the processing execution order of a process (hereinafter referred to as a controlled process) for simulating an object whose processing content changes depending on the processing result of another process is lowered. As a result, when processing for one synchronization is performed, the process execution result of a process having a high execution order is always received and the process of the controlled process is performed. Therefore, in the controlled process, the event information generated by the process of the process having a high execution order can be reflected in the process within the synchronization in which the event has occurred.

(実行順序の指定方法の例)
ここで、実行順序の指定方法について、外部インタフェース607としてグラフィカルユーザインタフェース(以下、GUIと記す)を使用する場合を例に挙げて説明する。
(Example of how to specify the execution order)
Here, a method for specifying the execution order will be described by taking as an example a case where a graphical user interface (hereinafter referred to as GUI) is used as the external interface 607.

図4Aは、前記GUIによって前記表示装置503上に表示される実行順序指定のための表示例である。GUIには、シミュレーションシステムを構成するアプリケーション名表示欄701と実行順序指定欄702がある。前記シミュレーションシステムのオペレータは、実行順序指定欄702上の設定対象の欄を前記マウス505により指定し、該指定個所にキーボード504から各アプリケーションに割当てる実行順序番号を数字で記入し、実行順序を設定する。GUIで設定された実行順序指定の情報は、シミュレーションシステムの中では、図4Bに示すような、各アプリケーションに付けられたアプリケーションID703と、実行順序を示す実行順序番号704で渡される。   FIG. 4A is a display example for specifying the execution order displayed on the display device 503 by the GUI. The GUI includes an application name display field 701 and an execution order designation field 702 that constitute the simulation system. The operator of the simulation system designates the setting target field on the execution order designation field 702 with the mouse 505, enters the execution order number assigned to each application from the keyboard 504 in the designated place, and sets the execution order. To do. In the simulation system, the execution order designation information set in the GUI is passed by an application ID 703 assigned to each application and an execution order number 704 indicating the execution order as shown in FIG. 4B.

そして、前記アプリケーションID703と前記実行順序番号704の情報が、システム管理モジュール605−1に渡され、同期モジュール605−2に前記アプリケーションID703と前記実行順序番号704の情報が記憶される。そして、前記同期モジュール605−2に記憶された前記アプリケーションID703と前記実行順序番号704の情報に従って、順次処理開始指示手段605−2−2が各プロセスに処理実行の開始指示を出す。   Then, the information on the application ID 703 and the execution order number 704 is transferred to the system management module 605-1, and the information on the application ID 703 and the execution order number 704 is stored in the synchronization module 605-2. Then, in accordance with the information of the application ID 703 and the execution order number 704 stored in the synchronization module 605-2, the process start instruction unit 605-2-2 sequentially issues a process execution start instruction to each process.

なお、上記説明では外部インタフェース607としてGUIを使用した例を挙げたが、GUI以外に、外部ファイルインタフェースやプロセス間通信を使用し、前記システム管理モジュール605−1に実行順序情報を渡す方法もある。   In the above description, the GUI is used as the external interface 607. However, in addition to the GUI, there is a method of using the external file interface or inter-process communication and passing the execution order information to the system management module 605-1. .

外部ファイルインタフェースを使用する場合は、予め定義された書式に従って実行順序を指定したファイルを用意する。そして、OSのアプリケーションプログラムインタフェースとして提供される外部ファイルインタフェースを介して、システム管理モジュール605−1に実行順序情報を渡す。   When using an external file interface, prepare a file specifying the execution order according to a predefined format. Then, the execution order information is passed to the system management module 605-1 via an external file interface provided as an OS application program interface.

また、プロセス間通信を使用する場合は、前記コア部分604とプロセス間通信で接続されているシミュレーション実行環境指定アプリケーション(前記コア部分604と別プロセス)を使用し、実行順序情報を指定する方法もある。   In addition, when using inter-process communication, there is also a method of specifying execution order information using a simulation execution environment designating application (separate process from the core part 604) connected to the core part 604 through inter-process communication. is there.

上記のように、外部インタフェース607を介した前記実行順序の指定ができることで、シミュレーションユーザの所望の実行順序を指定することができる。   As described above, since the execution order can be specified via the external interface 607, the execution order desired by the simulation user can be specified.

<実施形態1の具体的な適用例>
本実施形態では、CPUがステッピングモータ制御用途の集積回路(以下、ステッピングモータ制御ASICと記す)を使用してステッピングモータ制御のシミュレーションを行う場合を例に挙げて、本実施形態に係る機能を説明する。
<Specific Application Example of Embodiment 1>
In the present embodiment, functions according to the present embodiment will be described by taking as an example a case where a CPU performs a simulation of stepping motor control using an integrated circuit for stepping motor control (hereinafter referred to as a stepping motor control ASIC). To do.

実機におけるステッピングモータは、ステッピングモータの各相に与えられる駆動パルスによって制御され動作する。具体的には、ステッピングモータの各相に与える駆動パルス間隔を変化させることにより回転速度を制御し、駆動パルスの変化順により回転方向を変化させる。   The stepping motor in the actual machine is controlled and operated by drive pulses applied to each phase of the stepping motor. Specifically, the rotational speed is controlled by changing the drive pulse interval applied to each phase of the stepping motor, and the rotational direction is changed according to the change order of the drive pulses.

本実施形態では、駆動パルスの出力はステッピングモータ制御ASICが行う。前記ステッピングモータ制御ASICは、CPUが所定のレジスタに設定したステッピングモータ制御に関する値(モータ一回転分の励磁相、励磁パルス幅、および回転方向の設定値など)に従った駆動パルスを出力する。そして、ステッピングモータドライバICを介して、ステッピングモータ駆動が行われる動作をシミュレーションするものとする。   In this embodiment, the drive pulse is output by the stepping motor control ASIC. The stepping motor control ASIC outputs a drive pulse in accordance with values relating to stepping motor control set by the CPU in a predetermined register (excitation phase for one rotation of the motor, excitation pulse width, rotation direction setting values, etc.). Then, it is assumed that the operation of driving the stepping motor is simulated via the stepping motor driver IC.

前記のようなシミュレーションを行う場合、シミュレーション対象物を機器制御シミュレーションの構成に置き換えると以下のようになる。
・CPU → CPUシミュレータ601
・ステッピングモータ制御ASIC → シミュレータアプリケーション602
・ステッピングモータ → 機構モデルシミュレータ603
ここで、シミュレータアプリケーション602で実現するステッピングモータ制御ASICのシミュレーション機能を、以下では擬似モータ制御ASICと記す。
In the case of performing the simulation as described above, if the simulation object is replaced with the configuration of the device control simulation, the following is obtained.
CPU → CPU simulator 601
・ Stepping motor control ASIC → Simulator application 602
・ Stepping motor → Mechanism model simulator 603
Here, the simulation function of the stepping motor control ASIC realized by the simulator application 602 is hereinafter referred to as a pseudo motor control ASIC.

(本具体例におけるプロセス間の制御関係)
図5に、CPUシミュレータ601と擬似モータ制御ASIC602、および、機構モデルシミュレーション603のプロセス間の制御関係を示す。
(Control relationship between processes in this example)
FIG. 5 shows the control relationship between the processes of the CPU simulator 601, the pseudo motor control ASIC 602, and the mechanism model simulation 603.

実機では、CPUの各種設定値に従って、モータ制御ASICがステッピングモータ駆動パルスを出力し、モータドライバICを介して、ステッピングモータを駆動する。機器モデルシミュレーションでは、CPUシミュレーション601が擬似モータ制御ASICを制御し、擬似モータ制御ASICが機器モデルシミュレーション603を制御することになる。   In the actual machine, the motor control ASIC outputs a stepping motor driving pulse according to various setting values of the CPU, and drives the stepping motor via the motor driver IC. In the device model simulation, the CPU simulation 601 controls the pseudo motor control ASIC, and the pseudo motor control ASIC controls the device model simulation 603.

従って、各プロセスの実行順序は高い方から順に、CPUシミュレーション601の処理[1]→擬似モータ制御ASICの処理[2]→機器モデルシミュレーションの処理[3]となる。   Therefore, the execution order of each process is, in descending order, CPU simulation 601 processing [1] → pseudo motor control ASIC processing [2] → device model simulation processing [3].

本実施形態で挙げる機構モデルミュレータ603では、モータモデルに対して、予め1パルスあたりの回転角[°]を指定し、回転方向と1同期間隔でのパルス数をモータ駆動信号として与える。モータ駆動信号は、1同期間隔でのパルス数に、回転方向情報として符号を加えたものである。(回転方向を表す符合は、正回転ではプラス[+]、逆回転ではマイナス[-]である。)
擬似モータ制御ASICは、CPUシミュレータ601から設定されるステッピングモータ制御関連値からステッピングモータの動作量を算出し、機構モデルシミュレータ603のモータモデルに対して、モータ駆動信号を出力する。モータ駆動信号については前述の通りである。
In the mechanism model emulator 603 described in the present embodiment, a rotation angle [°] per pulse is specified in advance for the motor model, and the rotation direction and the number of pulses at one synchronization interval are given as a motor drive signal. The motor drive signal is obtained by adding a sign as rotation direction information to the number of pulses at one synchronization interval. (The sign indicating the rotation direction is plus [+] for forward rotation and minus [-] for reverse rotation.)
The pseudo motor control ASIC calculates the operation amount of the stepping motor from the stepping motor control related value set from the CPU simulator 601 and outputs a motor drive signal to the motor model of the mechanism model simulator 603. The motor drive signal is as described above.

(本具体例における各プロセス間の同期連携例)
図6に、ステッピングモータ制御シミュレーションを行う場合、本実施形態の同期方式による各プロセス間の同期連携の状況を示す。
(Synchronous linkage example between processes in this example)
FIG. 6 shows a state of synchronization cooperation between processes according to the synchronization method of the present embodiment when a stepping motor control simulation is performed.

図6中の(1)で、順次処理開始指示手段605−2−2は実行順序が一番高い(実行順序[1])アプリケーションソフトであるCPUシミュレータ601に対して、n同期目の処理として1同期時間Tsの処理実行を指示する。CPUシミュレータ601は、CPUシミュレータ固有の仮想時間によるTs分の処理実行を開始する(2)。CPUシミュレータ601は、指示された処理の中で、ステッピングモータ制御に関する値を設定する(3)。CPUシミュレータ601のステッピングモータ制御関連値設定によって発生したイベント情報は、配線モジュール605−3に伝えられる。配線モジュール605−3は、前記ステッピングモータ制御関連設定値をシミュレータアプリケーションの一部である擬似モータ制御ASICに報知する(4)。擬似モータ制御ASICは、配線モジュール605−3からイベント(3)の情報を報知される(5)。しかしながら、擬似モータ制御ASICはまだn同期目の処理を開始していないため、前記設定値情報は擬似モータ制御ASICの処理開始時に反映される(8)。   In (1) in FIG. 6, the sequential processing start instruction means 605-2-2 performs the n-th synchronization process for the CPU simulator 601 that is the application software having the highest execution order (execution order [1]). Instructs execution of processing for one synchronization time Ts. The CPU simulator 601 starts processing execution for Ts by virtual time unique to the CPU simulator (2). The CPU simulator 601 sets a value related to stepping motor control in the instructed process (3). Event information generated by the stepping motor control related value setting of the CPU simulator 601 is transmitted to the wiring module 605-3. The wiring module 605-3 notifies the setting value related to the stepping motor control to the pseudo motor control ASIC which is a part of the simulator application (4). The pseudo motor control ASIC is notified of the event (3) information from the wiring module 605-3 (5). However, since the pseudo motor control ASIC has not yet started the n-th synchronization process, the set value information is reflected when the pseudo motor control ASIC starts processing (8).

CPUシミュレータ601が1同期時間分Tsの実行処理を終了(6)すると、処理実行終了通知が同期モジュール605−2に伝えられる。同期モジュール605−2は、次の実行順序(実行順序[2])のアプリケーションである擬似モータ制御ASICに対して、1同期時間Tsの処理実行を指示する(7)。   When the CPU simulator 601 finishes the execution process of Ts for one synchronization time (6), a process execution end notification is transmitted to the synchronization module 605-2. The synchronization module 605-2 instructs the pseudo motor control ASIC, which is an application in the next execution order (execution order [2]), to execute processing for one synchronization time Ts (7).

擬似モータ制御ASICは、同期モジュール605−2からの処理実行指示を受け、仮想時間Ts分の処理を開始する(8)。CPUシミュレータ601が設定したステッピングモータ制御関連設定値(イベント(3))の情報は、この時点から擬似モータ制御ASICの処理に反映される。擬似モータ制御ASICは、CPUシミュレータ601が設定したステッピングモータ制御設定値に従って、機構モデルシミュレータ603のモータモデル駆動信号を出力する(9)。ここで、ステッピングモータ制御関連設定値の情報が、擬似モータ制御ASICの処理開始時に、前記モータモデル駆動信号出力として配線モジュール605−3に伝わる。配線モジュール605−3は、モータモデル駆動信号の変化を機構モデルシミュレータ603に報知する(10)。機構モデルシミュレータ603は、配線モジュール605−3からのイベント(9)の情報を報知される(11)。しかしながら、機構モデルシミュレータ603はn同期目の処理を開始していないため、機構モデルシミュレータの処理開始時にモータモデル駆動信号の変化が反映される(14)。   The pseudo motor control ASIC receives a processing execution instruction from the synchronization module 605-2 and starts processing for the virtual time Ts (8). The information on the setting value related to the stepping motor control (event (3)) set by the CPU simulator 601 is reflected in the processing of the pseudo motor control ASIC from this point. The pseudo motor control ASIC outputs the motor model drive signal of the mechanism model simulator 603 in accordance with the stepping motor control setting value set by the CPU simulator 601 (9). Here, the information on the setting value related to the stepping motor control is transmitted to the wiring module 605-3 as the motor model drive signal output when the process of the pseudo motor control ASIC is started. The wiring module 605-3 notifies the change of the motor model drive signal to the mechanism model simulator 603 (10). The mechanism model simulator 603 is notified of the event (9) information from the wiring module 605-3 (11). However, since the mechanism model simulator 603 has not started the n-th synchronization process, the change in the motor model drive signal is reflected when the mechanism model simulator process starts (14).

擬似モータ制御ASICが1同期時間分Tsの実行処理を終了(12)すると、同期モジュール605−2は、擬似モータ制御ASICから処理実行終了通知を受ける。そして、次の実行順序(実行順序3)のアプリケーションである機構モデルシミュレータ603に対して、1同期時間Tsの処理実行を指示する(13)。   When the pseudo motor control ASIC finishes the execution process of Ts for one synchronization time (12), the synchronization module 605-2 receives a process execution end notification from the pseudo motor control ASIC. Then, it instructs the mechanism model simulator 603, which is an application in the next execution order (execution order 3), to execute processing for one synchronization time Ts (13).

機構モデルシミュレータ603は、同期モジュール605−2から処理実行指示を受け、仮想時間Ts分の処理を開始する(14)。擬似モータ制御ASICが変更したモータモデル駆動信号情報は、機構モデルシミュレータ603の処理プロセスを開始したの時点(14)から、機構モデルシミュレータ603の処理に反映される。そして、前記モータモデル駆動信号情報に従って、モータモデルをコンピュータ上で擬似的に動作させることができる。   The mechanism model simulator 603 receives a processing execution instruction from the synchronization module 605-2 and starts processing for the virtual time Ts (14). The motor model drive signal information changed by the pseudo motor control ASIC is reflected in the process of the mechanism model simulator 603 from the time (14) when the process process of the mechanism model simulator 603 is started. In accordance with the motor model drive signal information, the motor model can be operated on a computer in a pseudo manner.

機構モデルシミュレータ603が1同期時間分Tsの実行処理を終了(15)すると、同期モジュール605−2は、機構モデルシミュレータ603から処理実行終了通知を受け、(n+1)同期目の同期処理へ移る(16)。同期モジュール605−2は、実行順序の一番低いアプリケーションからの処理実行終了通知を受けた後、実行順序の一番高いアプリケーションであるCPUシミュレータ601に対して次の同期処理として1同期時間Tsの処理実行を指示する(14)。そして、CPUシミュレータ601は、(n+1)同期目の処理を開始する(17)。   When the mechanism model simulator 603 finishes the execution process of Ts for one synchronization time (15), the synchronization module 605-2 receives a process execution end notification from the mechanism model simulator 603, and proceeds to the synchronization process of (n + 1) synchronization. Move (16). After receiving the processing execution end notification from the application with the lowest execution order, the synchronization module 605-2 receives the one synchronization time Ts as the next synchronization process for the CPU simulator 601 which is the application with the highest execution order. The process execution is instructed (14). Then, the CPU simulator 601 starts the (n + 1) synchronous processing (17).

以降は、前記(2)と同様に同期処理を繰り返し、シミュレーションを行う。   Thereafter, the simulation is repeated by repeating the synchronization process in the same manner as (2).

<実施形態1の作用効果>
以上のように同期処理を行うことで、CPUシミュレータ601がステッピングモータ制御関連値を変更したのと同じ同期内に、ステッピングモータ制御関連値の変更を反映させモータモデルを動作させることができる。
<Effect of Embodiment 1>
By performing the synchronization process as described above, the motor model can be operated by reflecting the change of the stepping motor control related value within the same synchronization as the CPU simulator 601 has changed the stepping motor control related value.

[実施形態2]
<実施形態2の特徴>
実施形態1では、各プロセス全てに実行順序をつけてシミュレーションを行った。しかし、機器制御シミュレーションにおいてシミュレーション精度が必要なのは特定のアプリケーションソフト間だけである場合がある。また、同じパフォーマンスのコンピュータシステムでシミュレーションを実行した場合には、次のような問題がある。すなわち、実行順序をつけて各プロセスをシーケンシャルに処理を実行すると、実行順序をつけずに各プロセスを並行に処理実行するのに比べ、シミュレーションにかかる時間を多く要してしまう。
[Embodiment 2]
<Features of Embodiment 2>
In the first embodiment, the simulation is performed with the execution order assigned to all the processes. However, there are cases in which simulation accuracy is required only for specific application software in device control simulation. In addition, when the simulation is executed on a computer system having the same performance, there are the following problems. That is, if each process is executed sequentially with an execution order, it takes more time for the simulation than executing each process in parallel without setting the execution order.

本実施形態2では、複数の独立プロセスからなる機器制御シミュレーションシステムにおいて、以下の処理を行なう。各プロセスがシミュレーション上の仮想時間で同期を取って機器制御シミュレーションを行う場合に、所望のプロセス間にだけ実行順序をつけて1同期分の処理を行うものである。実行順序がつけられているプロセスは、実施形態1のように実行順序の順番に従いプロセス処理を実行する。一方、実行順序のつけられていないプロセスは、実行順序を考慮せずに複数プロセスの処理を同時に開始し、全プロセスの1同期分処理が終了したことをもって次の同期処理へ移行する。このように、実施形態2では、実行順序のつけられているプロセスと実行順序のつけられていないプロセスとが混在した場合の処理を行なう。   In the second embodiment, the following processing is performed in a device control simulation system including a plurality of independent processes. When each process performs a device control simulation in synchronization with a virtual time on the simulation, an execution order is set only between desired processes and processing for one synchronization is performed. A process with an execution order executes process processing according to the order of execution order as in the first embodiment. On the other hand, a process without an execution order starts processing of a plurality of processes simultaneously without considering the execution order, and shifts to the next synchronization process when processing for one synchronization of all processes is completed. As described above, in the second embodiment, processing is performed when a process with an execution order and a process without an execution order are mixed.

実行順序がつけられたプロセスのみ実行順序に従いシーケンシャルに処理を実行し、プロセス間の連携を取ってシミュレーションを行うことで、全プロセスに実行順序をつけなくとも、特定プロセス間ではシミュレーション精度を高めることができる。且つ、全プロセスに実行順序をつけてシミュレーションを行う場合に比べ、シミュレーションに要する時間も短くすることができる。   By executing processes sequentially according to the execution order only for processes to which execution order is assigned, and linking simulations between processes, simulation accuracy can be improved between specific processes without assigning execution order to all processes. Can do. In addition, the time required for the simulation can be shortened as compared with the case where the simulation is performed with the execution order assigned to all processes.

実施形態2を実行するプログラム連携システムの構成は、実施形態1と同様である。   The configuration of the program cooperation system that executes the second embodiment is the same as that of the first embodiment.

<実施形態2の順次処理開始指示手段605−2−2の制御手順例>
実施形態2では、図6の順次処理開始指示手段605−2−2が、実行順序のないプロセスと実行順序のあるプロセスを同時に実行管理できる機能をもつ。
<Control Procedure Example of Sequential Process Start Instructing Unit 605-2-2 of Embodiment 2>
In the second embodiment, the sequential process start instructing unit 605-2-2 in FIG. 6 has a function capable of simultaneously executing and managing processes having no execution order and processes having an execution order.

図7は、実施形態2における順次処理開始指示手段605−2−2の制御手順例を示したフローチャートである。以下では、プロセス処理実行順序変数Pn、実行順序のついているプロセス数をMとする。   FIG. 7 is a flowchart illustrating an example of a control procedure of the sequential process start instruction unit 605-2-2 according to the second embodiment. In the following, it is assumed that the process processing execution order variable Pn and the number of processes having the execution order are M.

まず、実行するプロセスの中に実行順序の指定がないプロセスがあるかをチェックする(ステップS1001)。ステップS1001で実行順序の指定がないプロセスがある場合、実行順序の指定がない全プロセスに対して基準同期時間分の処理実行を指示する(ステップS1002)。続いて、プロセス処理実行順序変数Pnの初期化を行う(ステップS1003)。ステップS1001にて全プロセスに実行順序の指定があると判断された場合には、ステップS1003を実行する。   First, it is checked whether there is a process for which the execution order is not specified among the processes to be executed (step S1001). If there is a process for which the execution order is not specified in step S1001, execution of processing for the reference synchronization time is instructed to all processes for which the execution order is not specified (step S1002). Subsequently, the process process execution order variable Pn is initialized (step S1003). If it is determined in step S1001 that the execution order is specified for all processes, step S1003 is executed.

ステップS1003でプロセス処理実行順序変数Pnの初期化を行った後、ステップS1004でPn≦Mが成立するか否かをチェックする。ステップS1004のチェックでPn≦Mが成立する場合は、ステップS1005へ進み、実行順序Pnのプロセスに基準同期時間分の処理実行を指示する。ステップS1005で実行順序Pnのプロセスに基準同期時間分の処理実行を指示した後、処理実行を指示した実行順序Pnのプロセスから処理実行終了通知を受けるまで待つ(ステップS1006)。ステップS1006で実行終了通知を受けたら、プロセス処理実行順序Pnを1つ進め(ステップS1007)、ステップS1004のPn≦Mが成立するかのチェックに戻る。   After initialization of the process processing execution order variable Pn in step S1003, it is checked in step S1004 whether Pn ≦ M is satisfied. If Pn ≦ M is satisfied in the check in step S1004, the process proceeds to step S1005 to instruct the process in the execution order Pn to execute processing for the reference synchronization time. In step S1005, the process in the execution order Pn is instructed to execute processing for the reference synchronization time, and then waits until a process execution end notification is received from the process in the execution order Pn instructed to execute the process (step S1006). When the execution end notification is received in step S1006, the process processing execution order Pn is advanced by 1 (step S1007), and the process returns to the check in step S1004 whether Pn ≦ M is satisfied.

また、ステップS1004でPn≦Mが不成立である場合、全プロセスから実行終了通知を受けるまで待つ(ステップS1008)。そして、ステップS1008で全プロセスから実行終了通知を受けた後、ステップS1009でシミュレーションの終了か否かを判定する。シミュレーションの終了でなければ、ステップS1001に戻り、次の同期分処理を行う。   If Pn ≦ M is not satisfied in step S1004, the process waits until an execution end notification is received from all processes (step S1008). Then, after receiving an execution end notification from all processes in step S1008, it is determined in step S1009 whether the simulation is to end. If the simulation is not finished, the process returns to step S1001 to perform the next synchronization processing.

<実施形態2の具体的な適用例>
ここで、3つの独立プロセスからなるシミュレーションシステムを動作させる例にあげて、各プロセス間の同期連携状況を説明する。各アプリケーションソフトのシステム構成は下記のようになっている。
(実行順序の指定)
・アプリケーションソフト1:実行順序[1]
・アプリケーションソフト2:実行順序[2]
・アプリケーションソフト3:実行順序[指定なし]
(端子接続状況の設定)
・信号A:アプリケーションソフト1から出力され、アプリケーションソフト2に入力される。
・信号B:アプリケーションソフト2から出力され、アプリケーションソフト1に入力される。
・なお、アプリケーションソフト2の処理は信号Aに依存し、信号Bは信号Aによって決定される。
<Specific Application Example of Embodiment 2>
Here, as an example of operating a simulation system composed of three independent processes, the synchronous linkage status between the processes will be described. The system configuration of each application software is as follows.
(Specify execution order)
-Application software 1: Execution order [1]
Application software 2: execution order [2]
-Application software 3: Execution order [No specification]
(Terminal connection status setting)
Signal A: output from application software 1 and input to application software 2
Signal B: Output from application software 2 and input to application software 1
Note that the processing of the application software 2 depends on the signal A, and the signal B is determined by the signal A.

(本具体例における各プロセス間の同期連携例)
アプリケーションソフト1,2、アプリケーションソフト3の各プロセス間の同期連携状況を図8に示す。
(Synchronous linkage example between processes in this example)
FIG. 8 shows the synchronization linkage status between the processes of the application software 1 and 2 and the application software 3.

図8中の(1)で、同期モジュール605−2は、実行順序[1]であるアプリケーションソフト1と実行順序のついていないアプリケーションソフト3に処理実行の開始を指示する。アプリケーションソフト1とアプリケーションソフト3は処理開始指示(1)を受け、1同期時間Ts分の処理を開始する(2),(3)。アプリケーションソフト1実行途中に、信号Aの変化イベント(4)が発生する。前記イベント情報は、配線モジュール605−3に伝わり、配線モジュール605−3は信号Aの変化情報をアプリケーションソフト2に報知する(5)。アプリケーションソフト2には、配線モジュール605−2からイベント(4)の情報が報知される(6)。しかしながら、アプリケーションソフト2はn同期目の処理を開始していないため、信号Aの変化情報はアプリケーションソフト2の処理開始時に反映される(9)。   In (1) in FIG. 8, the synchronization module 605-2 instructs the application software 1 in the execution order [1] and the application software 3 not in the execution order to start processing execution. The application software 1 and the application software 3 receive the processing start instruction (1) and start processing for one synchronization time Ts (2), (3). A change event (4) of signal A occurs during the execution of application software 1. The event information is transmitted to the wiring module 605-3, and the wiring module 605-3 notifies the change information of the signal A to the application software 2 (5). The application software 2 is notified of the event (4) information from the wiring module 605-2 (6). However, since the application software 2 has not started the n-th synchronization process, the change information of the signal A is reflected when the application software 2 starts processing (9).

アプリケーションソフト1が1同期時間分Tsの実行処理を終了(7)すると、処理実行終了通知が同期モジュール605−2に伝えられる。同期モジュール605−2は、次の実行順序(実行順序[2])のアプリケーションソフト2に対して1同期時間Tsの処理実行開始を指示する(8)。   When the application software 1 finishes execution processing for one synchronization time Ts (7), a processing execution completion notification is transmitted to the synchronization module 605-2. The synchronization module 605-2 instructs the application software 2 in the next execution order (execution order [2]) to start processing execution for one synchronization time Ts (8).

アプリケーションソフト2は、同期モジュール605−2から処理実行開始指示を受け1同期時間分Tsの処理を開始する(9)。その後、アプリケーションソフト3で1同期時間分の処理が終了し、処理実行終了を同期モジュールに対して通知する(10)。同期モジュール605−2は、アプリケーションソフト3の処理実行終了通知を受け取る(11)。   The application software 2 receives a process execution start instruction from the synchronization module 605-2 and starts processing for one synchronization time Ts (9). Thereafter, the processing for one synchronization time is completed by the application software 3, and the completion of the processing is notified to the synchronization module (10). The synchronization module 605-2 receives a process execution end notification of the application software 3 (11).

次に、アプリケーションソフト2が信号Bを変更したことによるイベントが発生する(12)。前記イベント(12)の情報は、配線モジュール605−3に伝わり、配線モジュール605−3は、信号B変化のイベント情報をアプリケーションソフト1に報知する(13)。ここで、アプリケーションソフト1は、イベント(12)の情報の報知を受ける(14)。しかしながら、アプリケーションソフト1はn同期目の処理を終了しているため、前記情報(14)がアプリケーションソフト1の処理に反映されるのは、(n+1)同期目の処理開始時である。   Next, an event occurs when the application software 2 changes the signal B (12). The information on the event (12) is transmitted to the wiring module 605-3, and the wiring module 605-3 notifies the application software 1 of event information of the signal B change (13). Here, the application software 1 receives notification of information on the event (12) (14). However, since the application software 1 has finished the process of the nth synchronization, the information (14) is reflected in the process of the application software 1 when the process of the (n + 1) th synchronization is started.

アプリケーションソフト2のn同期目の処理が終了した時点で、同期モジュール605−2に処理終了通知が出される(15)。アプリケーションソフト2から処理実行終了通知を受け取った時点で、全アプリケーションソフトからn同期目の処理実行終了通知を受け取ったことになり、同期モジュール605−2は、(n+1)同期目の処理開始へと移行する(16)。   When the n-th synchronization process of the application software 2 is completed, a process end notification is sent to the synchronization module 605-2 (15). When the processing execution end notification is received from the application software 2, the nth synchronization processing execution completion notification is received from all the application software, and the synchronization module 605-2 starts the (n + 1) synchronization processing. (16).

同期モジュール605−2は、前記(1)と同様にして、アプリケーションソフト1とアプリケーションソフト3に、1同期時間Ts分の処理開始を指示する(17),(18)。以降、n同期目と同様に同期処理を行う
<実施形態2の作用効果>
順次処理開始指示手段605−2−2が、図7に記した処理フローチャートに従って同期処理を行うことで、
・実行順序がついているプロセスとついていないプロセスが混合している場合、
・全てのプロセスに実行順序がついている場合、
・全てのプロセスに実行順序がついていない場合、
以上の全ての場合において、シミュレーションの実行速度優先、または、シミュレーションの精度優先かをユーザのニーズにあったシミュレーションができるように、各プロセスの同期を管理できる。
The synchronization module 605-2 instructs the application software 1 and the application software 3 to start processing for one synchronization time Ts (17) and (18) in the same manner as (1). Thereafter, the synchronization process is performed in the same manner as in the n-th synchronization.
The sequential processing start instructing means 605-2-2 performs the synchronization processing according to the processing flowchart shown in FIG.
・ When processes with execution order and processes with no execution order are mixed,
・ If all processes have execution order,
・ If all processes do not have the execution order,
In all of the above cases, the synchronization of each process can be managed so that simulation according to the user's needs can be performed, whether simulation execution speed priority or simulation accuracy priority.

[実施形態3]
<実施形態3の特徴>
実施形態1、2では、各プロセスに実行順序情報をつけてシーケンスシミュレーションを行った。実施形態3では、シミュレーション実行時に、並列実行方式か/シーケンスシャル実行方式かを必要に応じてシミュレーションシステムのユーザが選択できるようにするものである。ここで、並列実行方式は、従来のプロセス間連携動作方法のように、各プロセスに実行順序をつけずに並列的にプロセスを実行して行く方式である。一方、シーケンスシャル実行方式は、実施形態1または実施形態2のように各プロセスに実行順序をつけシーケンスシャルにプロセスを実行して行く方式である。
[Embodiment 3]
<Features of Embodiment 3>
In the first and second embodiments, sequence simulation is performed with execution order information attached to each process. In the third embodiment, the user of the simulation system can select the parallel execution method / sequential execution method as necessary during simulation execution. Here, the parallel execution method is a method in which processes are executed in parallel without assigning an execution order to each process, as in the conventional inter-process cooperative operation method. On the other hand, the sequential execution method is a method in which processes are executed in a sequential manner by assigning execution order to each process as in the first or second embodiment.

シミュレーションシステムのプロセス処理の実行方法を選択可能にすることで、ユーザがシミュレーションの実行速度を優先したい場合も、シミュレーションの精度を優先したい場合も、どちらの場合にも応えられるシミュレーションができる。   By making it possible to select the process processing execution method of the simulation system, it is possible to perform a simulation that can respond to both cases where the user wants to prioritize the simulation execution speed and the simulation accuracy.

<本実施形態を実行するプログラム連携システムの概略構成例>
本実施形態3に係るプログラム連携システムの構成は、実施形態1で示した図2の処理開始指示手段605−2−1に、新たな2つの手段が加わったものである。図9に、本実施形態に係るプログラム連携システムの処理開始指示手段605−2−1を含めた同期モジュール605−2の機能構成を示す。
<Schematic configuration example of a program cooperation system that executes the present embodiment>
The configuration of the program cooperation system according to the third embodiment is obtained by adding two new means to the process start instruction means 605-2-1 shown in FIG. FIG. 9 shows a functional configuration of the synchronization module 605-2 including the process start instruction unit 605-2-1 of the program cooperation system according to the present embodiment.

前記処理開始指示手段605−2−1は、順次処理開始指示手段605−2−2に加えて、次の構成要素を含む。すなわち、全アプリケーションソフトに1同期分の処理実行を同時に指示することにより、全アプリケーションソフト間の同期を行う同時処理開始指示手段1200−1を含む。また、同時処理開始指示手段1200−1と順次処理開始指示手段605−2−2のどちらを使用して同期処理を行うかを決定する処理開始指示手段決定情報に従い、2つの処理開始指示手段の切替えを行う処理開始指示切替手段1200−2を含む。   The process start instruction unit 605-2-1 includes the following components in addition to the process start instruction unit 605-2-2. In other words, it includes simultaneous processing start instruction means 1200-1 for synchronizing all application software by simultaneously instructing all application software to execute processing for one synchronization. In addition, according to the process start instruction means determination information for determining which of the simultaneous process start instruction means 1200-1 and the sequential process start instruction means 605-2-2 is to be used for synchronization processing, two process start instruction means Processing start instruction switching means 1200-2 for switching is included.

<実施形態3の処理開始指示手段605−2−1の制御手順例>
図10に、本実施形態における処理開始指示手段605−2−1の制御フローチャートを示す。以下では、プロセス処理実行順序変数Pn、実行順序のついているプロセス数をMとする。
<Example of Control Procedure of Processing Start Instruction Unit 605-2-1 of Embodiment 3>
FIG. 10 shows a control flowchart of the process start instruction unit 605-2-1 in the present embodiment. In the following, it is assumed that the process processing execution order variable Pn and the number of processes having the execution order are M.

まず、ステップS1300で各プロセスをシーケンシャル実行指定がなされているかをチェックする。各プロセスがシーケンシャル実行の指定がされている場合は、ステップS1301の実行順序の指定がないプロセスがあるかを判断する処理に続く。   First, in step S1300, it is checked whether each process is designated for sequential execution. If each process is designated for sequential execution, the process continues to the process of determining whether there is a process for which no execution order is designated in step S1301.

ステップS1301からステップS1309までの処理は、実施形態2で示した、順次処理開始指示手段605−2−2による図7のステップS1001からステップS1008の処理と同様であるのでここでの説明は避ける。   The processing from step S1301 to step S1309 is the same as the processing from step S1001 to step S1008 of FIG. 7 by the sequential processing start instruction unit 605-2-2 shown in the second embodiment, and therefore description thereof is omitted here.

1同期処理実行をステップS1300でシーケンシャル実行の指定がない場合、全プロセスに基準同期時間分の処理実行を指示するステップS1310の処理を行う。ステップS1310の後、全プロセスから実行終了通知を受けるまで待つ(ステップS1311)。ステップS1311で全プロセスから実行終了通知を受けた後、ステップS1312でシミュレーションの終了か否かを判定する。シミュレーションの終了でなければ、ステップS1310に戻り、次の同期時間分の処理を行う。   If the execution of one synchronous process is not designated in step S1300, the process of step S1310 for instructing all processes to execute the process for the reference synchronous time is performed. After step S1310, the process waits until an end-of-execution notification is received from all processes (step S1311). After receiving an execution end notification from all processes in step S1311, it is determined in step S1312 whether the simulation is to end. If the simulation is not finished, the process returns to step S1310, and processing for the next synchronization time is performed.

各プロセスをシーケンシャル実行するか、並列実行するかの指定は、実施形態2で説明したように、GUIから指定する方法、外部ファイルインタフェースを介して指定する方法、もしくはプロセス間通信を介して指定する方法がある。   As described in the second embodiment, the designation of whether each process is executed sequentially or in parallel is designated by a method designated from the GUI, a method designated via an external file interface, or an inter-process communication. There is a way.

また、処理開始指示手段605−2−2を構成する各々の手段(順次処理開始指示手段、同時処理開始指示手段、処理開始指示切替手段)の行う処理は、前述した処理開始指示手段605−2−1の制御フローチャートの下記処理に相当する。
・ステップS1300:処理開始指示切替手段1200−2
・ステップS1301〜S1309:順次処理開始指示手段605−2−2
・ステップS1310〜S1312:同時処理開始指示手段1200−1
<実施形態3の作用効果>
本実施形態を行うことにより、各アプリケーションソフトの処理実行方法をユーザが選択してシミュレーションを行うことが可能になり、シミュレーションを実行速度優先か、精度優先かユーザのニーズにあったシミュレーションを行うことができる。
Further, the processing performed by each means (sequential processing start instructing means, simultaneous processing start instructing means, processing start instruction switching means) constituting the processing start instructing means 605-2-2 is the above-described processing start instructing means 605-2. This corresponds to the following process of the control flowchart of -1.
Step S1300: Process start instruction switching means 1200-2
Steps S1301 to S1309: Sequential processing start instruction means 605-2-2
Steps S1310 to S1312: Simultaneous processing start instruction means 1200-1
<Effect of Embodiment 3>
By performing this embodiment, it becomes possible for the user to select the processing execution method of each application software and perform a simulation, and the simulation is performed according to the user's needs, whether priority is given to execution speed or accuracy. Can do.

なお、上記実施形態では、図1に示したコンピュータシステム501による集中制御の例を示したが、本発明は複数のコンピュータがネットワークを介して接続されたシステムにおける分散制御によっても実現できることは、明らかである。   In the above embodiment, an example of centralized control by the computer system 501 shown in FIG. 1 has been described. However, it is apparent that the present invention can be realized by distributed control in a system in which a plurality of computers are connected via a network. It is.

又、上記実施形態の具体例では、例えば、ステッピングモータの制御を例に示したが、本発明はこれに限定されることなく、あらゆるシミュレーションに適用できる。特に、アプリケーションソフト間のイベント情報のやり取り、とりわけイベント情報により処理の前後関係が明らかなシミュレーションに有用である。   Further, in the specific example of the above embodiment, for example, the control of the stepping motor is shown as an example, but the present invention is not limited to this and can be applied to any simulation. In particular, it is useful for the exchange of event information between application softwares, especially for simulations in which the context of processing is clear by event information.

又、本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、プリンタなど)から構成されるシステムあるいは統合装置に適用しても、ひとつの機器からなる装置に適用してもよい。   In addition, the present invention may be applied to a system or an integrated device composed of a plurality of devices (for example, a host computer, an interface device, a printer, etc.) or an apparatus composed of a single device.

又、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはu CPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。   Another object of the present invention is to supply a storage medium (or recording medium) in which a program code of software that realizes the functions of the above-described embodiments is recorded to a system or apparatus. Needless to say, this can also be achieved by the computer (or u CPU or MPU) of the system or apparatus reading and executing the program code stored in the storage medium.

この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。   In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the storage medium storing the program code constitutes the present invention.

又、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。   The functions of the above-described embodiments are not only realized by executing the program code read by the computer. Based on the instruction of the program code, the operating system (OS) running on the computer performs part or all of the actual processing, and the functions of the above-described embodiments are realized by the processing. Needless to say.

さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行う。このような処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。   Further, the program code read from the storage medium is written in a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer. Thereafter, based on the instruction of the program code, the CPU provided in the function expansion card or function expansion unit performs part or all of the actual processing. It goes without saying that the case where the functions of the above-described embodiments are realized by such processing is also included.

本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。   When the present invention is applied to the storage medium, the storage medium stores program codes corresponding to the flowcharts described above.

本実施形態に係るプログラム連携システムの概略構成例を示す図であるIt is a figure which shows the example of schematic structure of the program cooperation system which concerns on this embodiment. 本実施形態に係るプログラム連携システムの機能構成例を示す図であるIt is a figure which shows the function structural example of the program cooperation system which concerns on this embodiment. 実施形態1に係る順次処理開始指示手段の制御手順例を示すフローチャートである5 is a flowchart illustrating an example of a control procedure of a sequential process start instruction unit according to the first embodiment. 本実施形態に係る実行順序を指定するGUIによって表示される実行順序指定のための表示例を示した図であるIt is the figure which showed the example of a display for the execution order designation | designated displayed by GUI which designates the execution order which concerns on this embodiment 本実施形態に係る実行順序情報の模式図であるIt is a schematic diagram of the execution order information which concerns on this embodiment 実施形態1の具体例における、CPUシミュレータと擬似モータ制御ASICおよび機構モデルシミュレーションのアプリケーションソフト間の制御関係を示す図であるFIG. 3 is a diagram illustrating a control relationship between a CPU simulator, a pseudo motor control ASIC, and application software for a mechanism model simulation in a specific example of the first embodiment. 実施形態1における同期方式による各プロセスの同期連携の状況を示す図であるIt is a figure which shows the condition of the synchronous cooperation of each process by the synchronous system in Embodiment 1. 実施形態2に係る順次処理開始指示手段の制御手順例を示すフローチャートである10 is a flowchart illustrating an example of a control procedure of a sequential process start instruction unit according to the second embodiment. 実施形態2における同期方式による各プロセスの同期連携の状況を示す図であるIt is a figure which shows the condition of the synchronous cooperation of each process by the synchronous system in Embodiment 2. 実施形態3に係るプログラム連携システムの同期モジュールの機能構成例を示す図であるIt is a figure which shows the function structural example of the synchronous module of the program cooperation system which concerns on Embodiment 3. FIG. 実施形態3に係る処理開始指示手段を含む制御手順例を示すフローチャートである12 is a flowchart illustrating an example of a control procedure including a process start instruction unit according to the third embodiment. 従来のアプリケーション間での連携動作の形態についての模式図であるIt is a schematic diagram about the form of the cooperation operation | movement between the conventional applications. 従来のプロセス接続手段の制御によるアプリケーションの同期連携の状況を示す図であるIt is a figure which shows the condition of the synchronous cooperation of the application by control of the conventional process connection means 従来のプロセス間連携動作で、プロセス処理終了の後にイベントが発生した場合の例を示す図であるIt is a figure which shows the example when the event generate | occur | produces after process processing completion | finish by the conventional inter-process cooperation operation | movement. 従来のプロセス間連携動作で、プロセス処理終了の前にイベントが発生した場合の例を示す図であるIt is a figure which shows the example when an event generate | occur | produces before the end of a process process by the conventional inter-process cooperation operation | movement.

Claims (9)

コンピュータシステム上で独立のプロセスとして動作する複数のアプリケーションソフトと、前記複数のアプリケーションソフトを接続して1つのシステムとして動作させるプロセス接続手段とを含むプログラム連携システムにおいて、
前記複数のアプリケーションソフトは、それぞれが固有の仮想時間により当該仮想時間の経過に対応した処理を行うアプリケーションソフトであり、
前記プロセス接続手段は、一定の長さの仮想時間を1単位として、前記1単位ごとに前記複数のアプリケーションソフト間の仮想時間を一致させる同期処理を行う同期モジュールを備えており、
前記同期モジュールは、前記複数のアプリケーションに1同期分の処理開始を指示する処理開始指示手段を有し、
前記処理開始指示手段は、前記複数のアプリケーションソフトの1同期分の処理を実行させる順序情報に従って、前記複数のアプリケーションソフトに対して各アプリケーションソフトごとに1同期分の処理実行の開始を順次指示する順次処理開始指示手段を有することを特徴とするプログラム連携システム。
In a program cooperation system including a plurality of application software that operates as independent processes on a computer system, and a process connection unit that connects the plurality of application softwares to operate as one system,
The plurality of application software is application software that performs processing corresponding to the passage of the virtual time by a unique virtual time,
The process connection means includes a synchronization module that performs a synchronization process to match a virtual time between the plurality of application software for each unit, with a virtual time of a certain length as one unit.
The synchronization module has processing start instruction means for instructing the plurality of applications to start processing for one synchronization,
The process start instruction means sequentially instructs the plurality of application software to start processing for one synchronization for each application software in accordance with order information for executing processing for one synchronization of the plurality of application software. A program cooperation system comprising sequential processing start instruction means.
前記順次処理開始指示手段は、前記順序情報において実行順序が高いアプリケーションソフトから処理実行の開始を指示し、実行を開始した前記実行順序が高いアプリケーションソフトの1同期分処理が終了した時点で、次に実行順序が高いアプリケーションソフトに処理実行の開始を指示し、前記複数のアプリケーションソフトの全ての1同期分の処理が終了した時点で、次の同期処理に移行することを特徴とする請求項1に記載のプログラム連携システム。   The sequential processing start instructing unit instructs the start of processing execution from application software having a high execution order in the order information, and when the processing for one synchronization of the application software having high execution order that has started execution is completed, The start of processing execution is instructed to application software having a high execution order, and when all of the processing for one synchronization of the plurality of application software is completed, the process proceeds to the next synchronization processing. The program linkage system described in 1. 前記順次処理開始指示手段は、前記順序情報において実行順序が同じであるアプリケーションソフトが複数存在する場合は、前記実行順序が同じアプリケーションソフトの全てへ同時に処理実行の開始を指示し、実行開始を指示した前記実行順序が同じ全てのアプリケーションソフトの1同期分処理が終了した時点で、次の実行順序が高いアプリケーションソフトに処理実行の開始を指示し、前記複数のアプリケーションソフトの全ての1同期分の処理が終了した時点で、次の同期処理に移行することを特徴とする請求項1に記載のプログラム連携システム。   When there are a plurality of application software having the same execution order in the order information, the sequential process start instructing means instructs all of the application software having the same execution order to start the process execution at the same time, and instructs the execution start. When the processing for one synchronization of all the application software having the same execution order is completed, the application software having the next higher execution order is instructed to start processing, and all of the plurality of application software for one synchronization 2. The program linkage system according to claim 1, wherein when the processing is completed, the process proceeds to the next synchronization processing. 前記順次処理開始指示手段は、前記順序情報に、実行順序の指定があるアプリケーションソフトと実行順序の指定がないアプリケーションソフトとが混在していた場合に、実行順序の指定がないアプリケーションソフトへは他のアプリケーションソフトとの実行順序を考慮せず処理実行の開始を指示することを特徴とする請求項1乃至3のいずれか1項に記載のプログラム連携システム。   The sequential processing start instructing means may include other application software for which the execution order is not specified when the order information includes application software for which the execution order is specified and application software for which the execution order is not specified. 4. The program cooperation system according to claim 1, wherein the start of processing execution is instructed without considering the execution order with the application software. 5. 前記処理開始指示手段は、
前記順序情報によらず前記複数のアプリケーションソフトの全てに1同期分の処理実行の開始を同時に指示する同時処理開始指示手段と、
前記順次処理開始指示手段と前記同時処理開始指示手段とのどちらを使用して処理を行うかを切替える処理開始指示切替手段とを有することを特徴とする請求項1乃至4のいずれか1項に記載のプログラム連携システム。
The processing start instruction means includes
Simultaneous processing start instruction means for simultaneously instructing all of the plurality of application softwares to start processing for one synchronization irrespective of the order information;
5. The apparatus according to claim 1, further comprising: a process start instruction switching unit that switches between using the sequential process start instruction unit and the simultaneous process start instruction unit. The program linkage system described.
前記順次処理開始指示手段は、ユーザがグラフィカルユーザインタフェースを介して設定した前記順序情報を取得することを特徴とする請求項1乃至5のいずれか1項に記載のプログラム連携システム。   6. The program cooperation system according to claim 1, wherein the sequential processing start instruction means acquires the order information set by a user via a graphical user interface. コンピュータシステム上で独立のプロセスとして動作する複数のアプリケーションソフトと、前記複数のアプリケーションソフトを接続して1つのシステムとして動作させるプロセス接続手段とを含むプログラム連携システムにおけるシミュレーション制御方法であって、
前記複数のアプリケーションソフトの1同期分の処理を実行させる順序情報に従って、前記順序情報において実行順序が高いアプリケーションソフトから処理実行の開始を指示するステップと、
実行を開始した前記実行順序が高いアプリケーションソフトの1同期分処理が終了した時点で、次に実行順序が高いアプリケーションソフトに処理実行の開始を指示するステップと、
前記複数のアプリケーションソフトの全ての1同期分の処理が終了した時点で、次の同期処理に移行するステップとを有することを特徴とするシミュレーション制御方法。
A simulation control method in a program linkage system, comprising: a plurality of application software that operates as independent processes on a computer system; and a process connection unit that connects the plurality of application softwares to operate as one system,
Instructing the start of process execution from application software having a high execution order in the order information according to the order information for executing processing for one synchronization of the plurality of application softwares;
Instructing the application software having the next highest execution order to start processing when the processing for one synchronization of the application software having the higher execution order started is completed;
And a step of shifting to the next synchronization process at the time when all the processes for one synchronization of the plurality of application software are completed.
請求項7に記載のシミュレーション制御方法のステップをコンピュータに実行させるためのプログラム。   A program for causing a computer to execute the steps of the simulation control method according to claim 7. 請求項8に記載のプログラムを記憶したコンピュータで読み取り可能な記憶媒体。   A computer-readable storage medium storing the program according to claim 8.
JP2007341116A 2007-12-28 2007-12-28 Program cooperation system and simulation control method therefor Withdrawn JP2009163423A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007341116A JP2009163423A (en) 2007-12-28 2007-12-28 Program cooperation system and simulation control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007341116A JP2009163423A (en) 2007-12-28 2007-12-28 Program cooperation system and simulation control method therefor

Publications (1)

Publication Number Publication Date
JP2009163423A true JP2009163423A (en) 2009-07-23

Family

ID=40965985

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007341116A Withdrawn JP2009163423A (en) 2007-12-28 2007-12-28 Program cooperation system and simulation control method therefor

Country Status (1)

Country Link
JP (1) JP2009163423A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011064915A (en) * 2009-09-16 2011-03-31 Canon Inc Simulation device, control method for the same, and program
CN107241447A (en) * 2017-07-31 2017-10-10 广东欧珀移动通信有限公司 Data syn-chronization management-control method, device, storage medium and electronic equipment
JP2018081400A (en) * 2016-11-15 2018-05-24 ルネサスエレクトロニクス株式会社 Arithmetic unit and virtual development environment device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011064915A (en) * 2009-09-16 2011-03-31 Canon Inc Simulation device, control method for the same, and program
JP2018081400A (en) * 2016-11-15 2018-05-24 ルネサスエレクトロニクス株式会社 Arithmetic unit and virtual development environment device
CN107241447A (en) * 2017-07-31 2017-10-10 广东欧珀移动通信有限公司 Data syn-chronization management-control method, device, storage medium and electronic equipment
CN107241447B (en) * 2017-07-31 2019-09-13 Oppo广东移动通信有限公司 Data synchronize management-control method, device, storage medium and electronic equipment

Similar Documents

Publication Publication Date Title
JP4807475B1 (en) Arithmetic unit, output control method, and program
TWI400652B (en) Dual operating system parallel processing methods, recording media and computer program products
JP4388427B2 (en) Numerical control device that can call programs written in script language
JP2005339029A (en) Program cooperation system
JP2002063050A (en) Control program development support device
EP2833256A1 (en) Image creation system for a network comprising a programmable logic controller
WO2020039900A1 (en) Information processing apparatus and program
JP2008250788A (en) Cooperation simulation system
KR102198204B1 (en) Simulation device
JP2009163423A (en) Program cooperation system and simulation control method therefor
WO2015030095A1 (en) Simulation device and simulation program
JP2007086921A (en) Machinery control program execution system
JP5314959B2 (en) Information processing apparatus, control method therefor, computer program, and storage medium
JP2006172128A (en) Processing method and information processing device for program cooperation system
JP7172864B2 (en) Support equipment and support programs
JP7024679B2 (en) Development support programs, development support devices, and development support methods
JP4875545B2 (en) Simulation synchronization apparatus and control method thereof
EP3385798B1 (en) Information processing device, information processing method, and information processing program
CN105425728A (en) Multi-axis motion serial control teaching programming method
JP7001012B2 (en) Support equipment and support programs
JP2012173884A (en) Data transfer control device and program
JP7234810B2 (en) Support equipment and support programs
US11640153B2 (en) Control system, support device, and recording medium
US9424016B2 (en) Methods, apparatuses, and systems relating to automation in distributed systems
JP5693668B2 (en) Information processing apparatus, control method therefor, computer program, and storage medium

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110301