WO2019069460A1 - 通信システム、マスタ装置、通信プログラム及び通信方法 - Google Patents

通信システム、マスタ装置、通信プログラム及び通信方法 Download PDF

Info

Publication number
WO2019069460A1
WO2019069460A1 PCT/JP2017/036509 JP2017036509W WO2019069460A1 WO 2019069460 A1 WO2019069460 A1 WO 2019069460A1 JP 2017036509 W JP2017036509 W JP 2017036509W WO 2019069460 A1 WO2019069460 A1 WO 2019069460A1
Authority
WO
WIPO (PCT)
Prior art keywords
periodic data
data
slave
periodic
cycle
Prior art date
Application number
PCT/JP2017/036509
Other languages
English (en)
French (fr)
Inventor
麻衣 栗原
Original Assignee
三菱電機株式会社
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 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2017/036509 priority Critical patent/WO2019069460A1/ja
Priority to TW106145699A priority patent/TWI655876B/zh
Publication of WO2019069460A1 publication Critical patent/WO2019069460A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling

Definitions

  • the present invention relates to a communication system, a master device, a communication program, and a communication method.
  • a communication system including a master and a slave for example, a communication system including a central processing unit (CPU) unit as a master and a remote input / output (I / O) unit as a slave, is as follows. It is configured. The master is set to receive data from all slaves in each cycle, and the slaves transmit transmission data to the master periodically at fixed time intervals.
  • the reason that the slaves transmit data at fixed time intervals is to match the data update cycle of the slave with the shortest data update cycle, since the data update cycle is different for each slave.
  • the communication cycle is constant.
  • the communication cycle is roughly proportional to the number of slaves.
  • Patent Document 1 In order to solve the above-mentioned problem in a scheme (polling type) in which a slave that receives a transmission request transmits a transmission request when the master station transmits a transmission request to slaves, in Patent Document 1, the master station transmits data of each slave It has been proposed to prevent a decrease in communication efficiency by transmitting a data transmission request according to the change in the content of. However, this proposal causes a waiting time in the portion of reduced data communication.
  • An object of the present invention is to provide a communication system and a master device which can improve communication efficiency without the occurrence of the waiting time.
  • the communication system of the present invention is A plurality of slave devices that transmit periodically updated periodic data when a periodic data request is received;
  • a communication system comprising: a master device that transmits the periodic data request to the slave device when a periodic data reception step of receiving the periodic data from each slave device of the plurality of slave devices is started,
  • the master device is A determination unit that determines whether the periodic data transmitted from the slave device in the latest periodic data reception step is the same as the periodic data transmitted from the same slave device to the previous time; From the latest periodic data reception step to the next periodic data reception step to transmit the periodic data request for the slave device whose periodic data has been determined by the determination unit based on the determination result by the determination unit
  • a determination unit that determines a transmission interval of the periodic data request of
  • a non-periodic data acquisition unit that acquires the non-periodic data from the slave device capable of transmitting non-periodic data that is not updated periodically among the plurality of slave devices in the periodic data receiving step based on the transmission interval
  • the master since the master includes the determination unit, the determination unit, and the non-periodic data acquisition unit, the frequency of data transmission by slaves with low data update frequency is reduced, and the communication time of periodic data is reduced. It can be reduced.
  • the frequency of data transmission by slaves with low data update frequency it is possible to reduce the data capacity of data to be transmitted among a plurality of slaves. Communication efficiency can be improved by allocating the reduced communication time or data capacity to aperiodic data reception.
  • FIG. 1 is a diagram of a first embodiment and is a configuration diagram showing a communication system.
  • FIG. 2 is a diagram of the first embodiment and is a hardware configuration diagram of a master device.
  • FIG. 8 is a diagram of the first embodiment and showing slave information.
  • FIG. 8 is a diagram of the first embodiment and is a flowchart showing an outline of processing of a master device.
  • FIG. 10 is another diagram of the first embodiment to explain a periodic reception process.
  • FIG. 2 is a diagram of the first embodiment and is a diagram showing an outline of steps S200 and S300.
  • FIG. 7 is a diagram of Embodiment 1 and a flowchart showing the contents of steps S200 and S300.
  • FIG. 6 is a diagram of the first embodiment, showing a slave with a data update cycle of 1 cycle.
  • FIG. 6 is a diagram of the first embodiment, showing a slave with a data update cycle of 2 cycles.
  • FIG. 6 is a diagram of the first embodiment, showing a slave with a data update cycle of 3 cycles.
  • FIG. 7 is a diagram of the first embodiment, showing a slave with a data update cycle of 6 cycles.
  • the figure of Embodiment 1 which shows the receiving ratio of the periodic data by an update interval.
  • FIG. 9 is a diagram of the first embodiment and is a diagram showing a modified example of the master device.
  • FIG. 10 is a diagram of the second embodiment and is a flowchart showing processing of a master device and a slave.
  • FIG. 15 is a diagram of the second embodiment and is a diagram for describing an operation outline of FIG. 14;
  • FIG. 8 is a diagram of the second embodiment, showing a slave with a data update cycle of 2 cycles.
  • FIG. 9 is a diagram of the second embodiment, showing a slave with a data update cycle of 3 cycles.
  • FIG. 8 is a diagram of the second embodiment, showing a slave with a data update cycle of 6 cycles.
  • FIG. 17 is a diagram of the third embodiment and is a flowchart showing processing of a master device and a slave.
  • FIG. 1 is a device configuration diagram showing a communication system 100 of the first embodiment.
  • the communication system 100 includes a master device 10 whose main component is a processor, and slave devices 20 and 20A whose main components are remote I / O units.
  • the master device 10 is hereinafter referred to as the master 10.
  • the slave device is described as a slave.
  • An external device 30A for transmitting non-periodic data is connected to the slave 20A of #n.
  • the external device 30A is usually connected to the master 10.
  • aperiodic data of the external device 30A is transmitted from the slave #n to the master 10 as transient data. Examples of non-periodic data include moving image information of a camera and audio information of a microphone.
  • FIG. 2 shows the hardware configuration of the master 10.
  • the master 10 includes a processor 81, a memory 82, an auxiliary storage device 83, a communication controller 84, and a timer 85.
  • the processor 81 controls the entire master.
  • the memory 82 stores the data sent from each slave 20.
  • the auxiliary storage device 83 nonvolatilely holds a program for the master 10 to operate and other information.
  • the communication controller 84 controls data communication with the slaves 20 and 20A.
  • the timer 85 provides the current time.
  • FIG. 3 shows tabular slave information 820 stored in the memory 82.
  • the slave information 820 has a sequence of a slave number 821, an address 822, a data capacity 823, the number of waiting cycles 824, a waiting cycle number update flag 825, a count 826, and stored data 827.
  • the slave number is set in the slave number 821.
  • the address of each slave is set in the address 822.
  • In the data capacity 823 the data capacity of the periodic data of each slave is set.
  • the number of waiting cycles N described later is set in the number of waiting cycles 824. If the number of waiting cycles N is updated in the cycle data receiving step, a flag is set in the number of waiting cycles update flag 825.
  • the waiting cycle number update flag 825 is referred to in step S203.
  • As a count 826 a count C described later is set.
  • the latest received periodic data is set.
  • the master 10 is a computer.
  • the master 10 includes a processor 81, and also includes other hardware such as a memory 82, an auxiliary storage device 83, a communication controller 84, and a timer 85.
  • the processor 81 is connected to other hardware via a signal line 86 and controls these other hardware.
  • the master 10 includes, as functional elements, a progression unit 11, a determination unit 12, a periodic data acquisition unit 13, a determination unit 14, and a non-periodic data acquisition unit 15.
  • the functions of the progression unit 11, the determination unit 12, the periodic data acquisition unit 13, the determination unit 14, and the non-periodic data acquisition unit 15 are realized by software.
  • the processor 81 is a device that executes a communication program.
  • the communication program is a program that implements the functions of the progression unit 11, the determination unit 12, the periodic data acquisition unit 13, the determination unit 14, and the non-periodic data acquisition unit 15.
  • the processor 81 is an IC (Integrated Circuit) that performs arithmetic processing. Specific examples of the processor 81 are a CPU, a digital signal processor (DSP), and a graphics processing unit (GPU).
  • the memory 82 is a storage device that temporarily stores data. Specific examples of the memory 82 are a static random access memory (SRAM) and a dynamic random access memory (DRAM). The memory 82 holds the calculation result of the processor 81.
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • the communication controller 84 receives data from each slave of the plurality of slaves.
  • the auxiliary storage device 83 is a storage device that stores data in a non-volatile manner.
  • a specific example of the auxiliary storage device 83 is an HDD (Hard Disk Drive).
  • the auxiliary storage device 83 includes an SD (registered trademark) (Secure Digital) memory card, a CF (Compact Flash), a NAND flash, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, and a DVD (Digital Versatile Disk). It may be a portable recording medium.
  • the communication program is read by the processor 81 and executed by the processor 81.
  • the memory 82 stores not only the communication program but also the OS (Operating System).
  • the processor 81 executes the communication program while executing the OS.
  • the communication program and the OS may be stored in the auxiliary storage device 83.
  • the communication program and the OS stored in the auxiliary storage device 83 are loaded into the memory 82 and executed by the processor 81. Note that part or all of the communication program may be incorporated into the OS.
  • the master 10 may include a plurality of processors that replace the processor 81.
  • the plurality of processors share execution of the communication program.
  • Each processor is an apparatus that executes a communication program in the same manner as the processor 81.
  • Data, information, signal values and variable values used, processed or output by the communication program are stored in the memory 82, the auxiliary storage device 83, or a register or cache memory in the processor 81.
  • the communication program reads “parts” of the progressing part 11, the judgment part 12, the periodic data acquisition part 13, the determination part 14 and the aperiodic data acquisition part 15 into “process”, “procedure” or “process”. It is a program that causes a computer to execute a process, each procedure or each process.
  • the communication method is a method performed by the master 10, which is a computer, executing a communication program.
  • the communication program may be provided by being stored in a computer readable recording medium, or may be provided as a program product.
  • FIG. 4 is a flowchart showing an outline of processing of the master 10.
  • the traveling unit 11 of the master 10 acquires the time from the timer 85 in step S100.
  • the progression unit 11 stands by until the timer 85 reaches the start time, and starts execution of step S200 when the periodic communication start time has come.
  • the periodic data acquisition unit 13 receives periodic data from the slave.
  • the non-periodic data acquisition unit 15 receives the non-periodic data from the slave #n, and one cycle of the periodic data receiving step ends.
  • FIG. 5 is a diagram for explaining the periodic data reception process.
  • the periodic data receiving step is a step in which the master 10 tries to receive periodic data from each slave of a plurality of slaves.
  • the periodic data receiving process is the process from step S201 to step S303 in FIG. 7 described later.
  • the periodic data receiving step is the step from step S401 to step S416 in FIG.
  • the periodic data receiving step is a step from step S401a to step S416 in FIG.
  • the periodic data is data held by the slave and is data that is periodically updated.
  • the periodic data receiving step is periodically and repeatedly performed.
  • Aperiodic data is data that is not updated periodically.
  • FIG. 5 shows a cycle data receiving step of n ⁇ 1 cycles, n cycles, and n + 1 cycles.
  • Time T0 is the time from the start time Ts of the cycle data reception process of the previous cycle to the start time Ts of the cycle data reception process of the next cycle.
  • Time T1 indicates the time of the periodic data reception process.
  • Time Ts indicates the start time of the periodic data reception process.
  • Time Te indicates the end time of the periodic data reception process.
  • Times T21, T22, and T23 indicate times of receiving non-periodic data in the periodic data receiving process.
  • the master 10 acquires periodic data from the slave.
  • the master 10 acquires non-periodic data from the slave #n at the remaining time T1 of the periodic data receiving step.
  • the reception time of aperiodic data is time T21 in the n-1 cycle, time T22 in the n cycle, and time T23 in the n + 1 cycle.
  • FIG. 6 is a diagram showing an outline of step S200 of periodic data reception and step S300 of non-periodic data reception.
  • FIG. 6 shows four slaves.
  • the slave # 4 corresponds to the connected slave #n of the external device 30A.
  • the left shows the first cycle of the periodic data reception process
  • the center shows the second cycle of the periodic data reception process
  • the right shows the third cycle of the periodic data reception process.
  • the master 10 receives cycle data D11, D21, D31 from the slaves # 1, # 2, # 3.
  • the master 10 receives period data D12, D22, D31 from the slaves # 1, # 2, # 3 at time T1 of the period data receiving step.
  • the master 10 receives cycle data D13 and D23 from the slaves # 1 and # 2.
  • the master 10 also receives aperiodic data Dn from slave # 4.
  • the master 10 has not received period data from slave # 3.
  • the master 10 has not received period data from slave # 3.
  • the cycle data of the first cycle and the second cycle are D11 and D12
  • the cycle data of the first cycle and the second cycle are D21 and D22. Since periodic data is updated in both slaves, the master 10 receives periodic data from slaves # 1 and # 2 in the third period.
  • the time to receive cycle data of slave # 3 is assigned to the time to receive aperiodic data from slave # 4.
  • a feature of the first embodiment is that, when there is one or more slaves that do not receive periodic data in the periodic data reception step, the time during which the periodic data is not received is allocated to the reception of aperiodic data. That is, when there are one or more slaves that do not receive periodic data in the periodic data reception process, time T21, T22, and T23 in FIG. 5 allocate time for not receiving periodic data to receive non-periodic data. It shows.
  • FIG. 7 which is the detail of the process of step S200 of FIG. 4 and step S300 is demonstrated below.
  • the time of the timer 85 of the master 10 and the time of each slave are synchronized.
  • the start and end of the cycle of the cycle data reception process are recognized as the same time between the master 10 and each slave.
  • FIG. 7 is a flowchart showing periodic data reception and aperiodic data reception, which are steps S200 and S300.
  • FIG. 8, FIG. 9, FIG. 10 and FIG. 11 show cases where the update period of data of a certain slave #k is one period, two periods, three periods and six periods, respectively.
  • FIG. 9 shows a state in which cycle data is updated every two cycles of the cycle data receiving process.
  • the master 10 receives cycle data from the slave #k every cycle.
  • FIG. 7 will be described by taking the case of two cycles shown in FIG. 9 as an example.
  • FIG. 9 is as follows.
  • the data number of the second line is the data number of the periodic data.
  • the black circle of reception on the third line indicates that the master 10 has received the cycle data indicated by the data number.
  • the count C1 in the fourth row is the count C at the time of determination in step S205 of FIG. 7.
  • the standby cycle number N1 on the fifth line is the latest standby cycle number N at the time of determination in step S203 of FIG. 7.
  • C1 / C2 on the sixth line indicates the count C1 and the count C2 which is the final count C of the periodic data reception process.
  • N1 / N2 of the seventh line indicates the number of waiting cycles N1 and the number of waiting cycles N2 which is the final number of waiting cycles N of the cycle data receiving step.
  • the eighth line shows the determination result of step S203. The same applies to FIG. 8, FIG. 10 and FIG.
  • the count C1 is the count C in step S205 of the periodic data reception process.
  • the count C2 is the final count C of the periodic data reception process.
  • the number of waiting cycles N1 is the number of waiting cycles N at the start of the periodic data reception process.
  • the number of waiting cycles N2 is the number of waiting cycles N at the end of the periodic data reception process.
  • the number of waiting cycles N1 is the number of waiting cycles N2 of the immediately preceding cycle data receiving step.
  • step S206 the cycle data acquisition unit 13 transmits a cycle data request for requesting cycle data to the slave #k via the communication controller 84.
  • the master 10 transmits a periodic data request to the slaves when the periodic data reception process for receiving periodic data from each slave of a plurality of slaves is started.
  • step S207 the cycle data acquisition unit 13 receives the cycle data D1 from the slave #k as a response to the cycle data request via the communication controller 84.
  • step S208 the determination unit 12 determines whether the cycle data transmitted from the slave in the latest cycle data receiving step is the same as the cycle data transmitted from the same slave to the previous cycle. Specifically, the determination unit 12 determines as follows. The determination unit 12 determines whether the received periodic data D1 and the stored data Ds are the same. The stored data Ds is data stored in the stored data 827 of the slave #k in the slave information 820 of the memory 82. In cycle ⁇ 1>, it is assumed that data is not stored in the stored data 827 of slave #k, and the determination unit 12 determines that the cycle data D1 and the stored data Ds are not the same. The processing proceeds to step S209.
  • step S209 the determination unit 14 determines, for the slaves whose cycle data has been determined by the determination unit 12, the transmission interval of the periodic data request based on the determination result by the determination unit 12.
  • the transmission interval of the periodic data request is the transmission interval of the periodic data request from the latest periodic data reception process to the next periodic data reception process to transmit the periodic data request.
  • the determination unit 14 determines, based on the determination result by the determination unit 12, the next cycle data reception process to transmit the cycle data request from the latest cycle data reception process Determine the transmission interval of periodic data request up to. (9)
  • the above result is a row of period ⁇ 1> in FIG. (10)
  • the slave information 820 is updated by the processing of the cycle ⁇ 1>. The same applies to the other periods ⁇ i> (i: 1, 2, 3).
  • step S212 the second process of FIG. 7 is started for slave #k.
  • step S212 k is substituted for the variable i by the progression unit 11, and the process returns from step S213 to step S203.
  • step S203 the determination unit 12 determines whether N of slave #k is updated. N is not updated from N1 / N2 of the seventh line of the cycle ⁇ 1>. Therefore, the determination unit 12 determines that N has not been updated.
  • the processing proceeds to step S205.
  • the determination unit 12 refers to the standby cycle number update flag 825 of the slave information 820 to determine whether N is updated. N1 / N2 is used for explanation.
  • N1 / N2 information may be included in the slave information 820.
  • C1 0 in step S205.
  • the periodic data acquisition unit 13 transmits a periodic data request to slave #k via the communication controller 84.
  • the cycle data acquisition unit 13 receives the cycle data D1 from the slave #k as a response to the cycle data request via the communication controller 84.
  • the determination unit 12 determines that the periodic data D1 and the stored data Ds are identical.
  • the processing proceeds to step S210.
  • step S210 the determination unit 14 determines, for the slaves whose cycle data has been determined by the determination unit 12, the transmission interval of the periodic data request based on the determination result by the determination unit 12.
  • the transmission interval of the periodic data request is as described in step S209 of the cycle ⁇ 1>. If the determination unit 12 determines that the cycle data D1 and the stored data Ds are the same, the determination unit 14 increases N by one.
  • the upper limit of N can be set.
  • step S212 in this case, the progression unit 11 sets the value of the variable i to k + 1.
  • step S213 the progression unit 11 determines whether i> k + 1.
  • the progression unit 11 determines whether the processing from slave # 1 to slave # n-1 has been completed. If not completed, the process returns to step S203, and the process for slave # k + 1 is started. If it has ended, the process proceeds to step S214. (10) The above result is a row of period ⁇ 2> in FIG.
  • step S212 the third process of FIG. 7 is started for slave #k.
  • step S212 k is substituted for the variable i by the progression unit 11, and the process returns from step S213 to step S203.
  • step S203 the determination unit 12 determines whether N of slave #k is updated. N is updated from N1 / N2 of the seventh line of the cycle ⁇ 2>. Therefore, the determination unit 12 determines that N is updated. The processing proceeds to step S204.
  • the processing proceeds to step S211.
  • the determination unit 14 subtracts 1 from the count C.
  • the process from step S212 is performed in the same manner as the cycle ⁇ 2>.
  • the above result is a row of period ⁇ 3> in FIG.
  • step S206 the periodic data acquisition unit 13 transmits a periodic data request to slave #k via the communication controller 84.
  • step S207 the cycle data acquisition unit 13 receives the cycle data D2 from the slave #k as a response to the cycle data request via the communication controller 84.
  • step S209 the periodic data D2
  • step S209 when the determination unit 12 determines that the cycle data D1 and the stored data Ds are not the same, the determination unit 14 subtracts N by one.
  • the count C2 is not updated, and the value 0 is maintained.
  • the processes after step S212 are performed in the same manner as in the cycle ⁇ 3>.
  • the above result is a row of period ⁇ 4> in FIG.
  • step S212 the fifth process of FIG. 7 is started for slave #k.
  • step S212 k is substituted for the variable i by the progression unit 11, and the process returns from step S213 to step S203.
  • step S203 the determination unit 12 determines whether N of slave #k is updated. N is updated from N1 / N2 of the seventh line of the cycle ⁇ 4>. Therefore, the determination unit 12 determines that N is updated. The processing proceeds to step S204.
  • the processing proceeds to step S206.
  • step S206 the periodic data acquisition unit 13 transmits a periodic data request to slave #k via the communication controller 84.
  • step S207 the cycle data acquisition unit 13 receives the cycle data D3 from the slave #k as a response to the cycle data request via the communication controller 84.
  • step S209 the determination unit 12 determines that the received periodic data D3 and the stored data Ds are not the same.
  • step S206 the periodic data acquisition unit 13 transmits a periodic data request to slave #k via the communication controller 84.
  • step S207 the cycle data acquisition unit 13 receives the cycle data D3 from the slave #k as a response to the cycle data request via the communication controller 84.
  • step S210 when the determination unit 12 determines that the received periodic data D3 and stored data Ds are identical, the determination unit 14 increments N by one.
  • the upper limit of N is set.
  • step S212 the processing of step S212 and the subsequent steps is performed as in the cycle ⁇ 5>.
  • step S212 the processing of step S212 and the subsequent steps is performed as in the cycle ⁇ 5>.
  • the above result is a row of period ⁇ 6> in FIG.
  • Step S214 the process shifts from reception of periodic data to reception of non-periodical data.
  • the processing proceeds from step S214 to step S300.
  • Step S300 is reception processing of asynchronous data by the non-periodic data acquisition unit 15. (1) In step S300, the reception process of non-periodic data starts. (2) In step S301, the non-periodic data acquisition unit 15 sends a data transmission request to slave #n via the communication controller 84. The slave #n connected to the external device 30A transmits aperiodic data to the master 10 as a response to the data transmission request.
  • step S302 the non-periodic data acquisition unit 15 transmits non-periodic data to the transmission interval determined by the determination unit 14 from slaves that can transmit non-periodic data that is not periodically updated among the plurality of slaves. Based on the data, it is acquired in the periodic data reception process. Specifically, the non-periodic data acquisition unit 15 of the master 10 continues to receive non-periodic data until the time acquired from the timer 85 reaches the periodic end time.
  • the non-periodic data acquisition unit 15 is a period in which non-periodic data can be acquired in the periodic data receiving step in which periodic data request is not transmitted to at least one slave, and is determined from the transmission interval determined by the determination unit 14 Aperiodic data is acquired in an acquisition period which is a period.
  • the reception process of periodic data starts at the time of the timer 85 at step S201, and the reception process of aperiodic data ends at the time of the timer 85 at step S302.
  • the time from step S201 to step S302 is a time limit for receiving periodic data, but the reception time of periodic data reduced due to the presence of slaves not transmitting periodic data is used for reception of non-periodic data.
  • the reception time allocated to the reception of non-periodic data is an acquisition period determined from the transmission interval determined by the determination unit 14.
  • the time limit to be received is determined.
  • the non-periodic data acquisition unit 15 acquires non-periodic data within the time limit.
  • the final waiting cycle number N2 in a certain cycle ⁇ i> of data reception indicates the transmission interval of the cycle data request until the next cycle data receiving step to transmit the cycle data request.
  • the case of three cycles in FIG. 10 is as follows.
  • the determination unit 14 uses the transmission interval of the periodic data request between the periodic data reception process and the latest periodic data reception process to which the periodic data was transmitted last time, and the determination result by the determination unit 12.
  • the transmission interval of the periodic data request is determined from the periodic data reception step of step h.
  • the number of waiting cycles N indicates the maximum value of the transmission interval until the next cycle data receiving step.
  • the count C1 indicates the decrease state of the number of waiting cycles N, that is, the transmission interval until the next cycle data receiving step in which cycle data is received.
  • FIG. 12 is a diagram showing an effect of the first embodiment, and shows a reception ratio of periodic data by the update interval.
  • the horizontal axis in FIG. 12 represents the update interval, and the vertical axis represents the reception ratio in%.
  • the update interval on the horizontal axis means the update cycle of the periodic data. In FIG. 9 of 2 cycles, FIG. 10 of 3 cycles, and FIG. 11 of 6 cycles, the update intervals are 2, 3 and 6, respectively.
  • the data reception ratio by the master 10 is 2 / n ⁇ 100% when stabilized.
  • n 6
  • FIG. 12 shows the reception rate of periodic data in a stable state. If the cycle is 6, the reception rate of the vertical axis at the position of 6 on the horizontal axis is about 33%.
  • the reception ratio of periodic data is reduced.
  • the time reduced for periodic data is used for aperiodic communication with the external device 30A, so communication time can be used effectively.
  • it can connect to the same network as the slave which transmits the period data of the external device 30A by this, there also exists an effect which can abbreviate
  • the period of each slave is obtained, and the transmission period is not changed.
  • the master 10 of the first embodiment is configured to thin out unnecessary transmissions. Therefore, in the first embodiment, the master 10 can flexibly cope with the case where the data update cycle of the slave is changed.
  • FIG. 13 shows the configuration of a master 10 according to a modification of the first embodiment.
  • the master 10 includes an electronic circuit 909, an auxiliary storage device 83, a communication controller 84, and a timer 85.
  • the electronic circuit 909 is a dedicated electronic circuit that implements the functions of the progression unit 11, the determination unit 12, the periodic data acquisition unit 13, the determination unit 14, the non-periodic data acquisition unit 15, and the memory 82.
  • the electronic circuit 909 is a single circuit, a complex circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA, an ASIC, or an FPGA.
  • GA is an abbreviation of Gate Array.
  • ASIC is an abbreviation of Application Specific Integrated Circuit.
  • FPGA is an abbreviation of Field-Programmable Gate Array.
  • the functions of the components of the master 10 may be realized by one electronic circuit or may be realized by being distributed to a plurality of electronic circuits. As another variation, some functions of the components of the master 10 may be realized by an electronic circuit, and the remaining functions may be realized by software.
  • Each of the processor and electronics is also referred to as processing circuitry. That is, in the master 10, the functions of the progression unit 11, the determination unit 12, the periodic data acquisition unit 13, the determination unit 14, and the non-periodic data acquisition unit 15 are realized by processing circuitry. In the master 10, the “parts” of the progression unit 11, the determination unit 12, the periodic data acquisition unit 13, the determination unit 14, and the non-periodic data acquisition unit 15 may be read as “process”. In addition, the operations of the progression unit 11, the determination unit 12, the periodic data acquisition unit 13, the determination unit 14, and the non-periodic data acquisition unit 15 of the master 10 can be regarded as a communication method.
  • the second embodiment is the same as the first embodiment in the configuration of the communication system and the master and slave.
  • the periodic data request is transmitted in step S206 of FIG. 7, but in the second embodiment, a transmission right called a token frame is used as the periodic data request.
  • the token frame is called a token below.
  • the master 10 circulates the token in order among the slaves, receives periodic data from the slaves, and receives aperiodic data from the slave #n.
  • the method of circulating tokens is different from the token passing method. In the token passing scheme, the slave transmits periodic data while holding the token.
  • FIG. 14 is a flowchart showing processing of the master 10 and the slave.
  • FIG. 15 is a diagram for explaining an operation outline of FIG.
  • FIG. 16 shows the case where the data update cycle of slave #k is 2 cycles.
  • FIG. 17 shows the case where the data update cycle of slave #k is 3 cycles.
  • FIG. 18 shows the case where the data update cycle of slave #k is 6 cycles.
  • FIG. 19 shows the contents of the token 200.
  • FIG. 19 shows the contents of the token 200.
  • the token 200 has a frame header 201, a slave address 202 and a frame footer 203.
  • the address 202 of the slave is stored between the frame header 201 and the frame footer 203.
  • the last of the addresses is always the address of slave #n.
  • FIG. 15 corresponds to the third period of the periodic data receiving step of FIG. In the first period and the second period, each slave transmits the same period data as in FIG.
  • the master 10 sets the addresses of slaves # 1 and # 2 and slave # 4 in the token 200, but does not set the address of slave # 3. Therefore, the master 10 does not receive the periodic data D from the slave # 3.
  • the period data of the first period and the second period is D31 and is not updated. Since the address of slave # 3 is not set to the token 200, the token 200 is not held by slave # 3. Thus, slave # 3 does not transmit periodic data.
  • the time T1 from when the token 200 is transmitted by the master 10 to when it returns to the master 10 is determined.
  • the start time Ts of the time T1 is step S401 in FIG. 14, and the end time Te is step S416 in FIG.
  • Step S401 is executed by the progression unit 11.
  • Steps S402, S403, S404, S405, and S406 are performed by the determination unit 12.
  • Steps S407, S408, and S409 are executed by the periodic data acquisition unit 13.
  • Steps S 414 and S 415 are executed by the non-periodic data acquisition unit 15.
  • Step S4091 is executed by the periodic data acquisition unit 13.
  • Step S4092 is executed by the determination unit 12.
  • Steps S4093, S4094, and S4095 are executed by the determination unit 14.
  • step S401 the progression unit 11 sets 1 to the variable i.
  • the determination unit 12 checks the current count C in order from slave # 1.
  • step S404 the determination unit 12 adds the address of the slave whose count C is 0 to the token 200.
  • the determination unit 12 acquires the slave address from the slave information 820. Since data from a slave with a count C larger than 0 is not received, the determination unit 12 subtracts 1 from the count C in step S403.
  • step S407 the periodic data acquisition unit 13 starts the timer 85 to start measurement of the communication cycle. Do.
  • step S408 the periodic data acquisition unit 13 transmits the token 200 to the slave that should receive the first data, and then receives periodic data from the first slave in step S409.
  • the contents of step S409 are shown in the lower left of FIG. Details of step S409 will be described later.
  • step S410 the slave holding the token 200 reads the address of the next slave from the token 200.
  • step S412 if the read address is other than slave #n, the slave holding the token 200 passes the token 200 to the next slave.
  • step S413 the last slave transmits the token 200 to slave #n.
  • step S414 the non-periodic data acquisition unit 15 of the master 10 acquires, from the timer 85, an elapsed time from the start of the timer in step S407.
  • step S415 the non-periodic data acquisition unit 15 causes the slave #n to transmit non-periodic data for the remaining time of the time T1, which is the prescribed periodic time.
  • step S416 the slave #n that has completed the data transmission transmits the token 200 to the master 10, and the process ends.
  • FIG. 14 will be described by taking the case of two cycles of FIG. 16 as an example.
  • FIG. 14 will be described by taking slave #k as an example and focusing on changes in the number of waiting cycles N and count C of slave #k.
  • steps S402 to S404, S409, and S501 to S505, which are related to the number of waiting cycles N and the count C will be described.
  • the count C1 is a count C at the start of the process of FIG. C2 is the final count C of the process of FIG. N1 is the waiting cycle number N at the start of the process of FIG. N2 is the final waiting cycle number N of the process of FIG.
  • the count C1 and the number of waiting cycles N1 are respectively the count C2 and the number of waiting cycles N2 in the process of FIG.
  • step S404 the determination unit 12 sets the token 200 to the address of slave #k.
  • the master 10 can acquire periodic data only from the slave whose address is set to the token 200.
  • step S409 the cycle data acquisition unit 13 receives the cycle data D1 from the slave #k as a response to the token 200 via the communication controller 84.
  • step S4092 the determination unit 12 determines whether the received periodic data D1 and the stored data Ds are the same.
  • the stored data Ds is data stored in the stored data 827 of the slave #k in the memory 82. In cycle ⁇ 1>, it is assumed that data is not stored in the stored data 827 of slave #k, and the determination unit 12 determines that the cycle data D1 and the stored data Ds are not the same.
  • the processing proceeds to step S4093.
  • step S409 the cycle data acquisition unit 13 receives the cycle data D1 from the slave #k as a response to the token 200 via the communication controller 84.
  • the process proceeds from step S4091 to step S4092.
  • step S4092 the determination unit 12 determines whether the received periodic data D1 and the stored data Ds are the same.
  • stored data Ds periodic data D1.
  • the determination unit 12 determines that the periodic data D1 and the stored data Ds are identical.
  • the processing proceeds to step S4094.
  • step S4094 when the determination unit 12 determines that the cycle data D1 and the stored data Ds are identical, the determination unit 14 increases N by one. The upper limit of N is set.
  • step S4095 the determination unit 14 substitutes the waiting cycle number N for the count C.
  • step S409 the cycle data acquisition unit 13 receives the cycle data D2 from the slave #k as a response to the token 200 via the communication controller 84.
  • the process proceeds from step S4091 to step S4092.
  • step S4092 the determination unit 12 determines whether the received periodic data D2 and the stored data Ds are the same.
  • stored data Ds periodic data D1.
  • the determination unit 12 determines that the periodic data D1 and the stored data Ds are not the same.
  • step S4093 when the determination unit 12 determines that the cycle data D1 and the stored data Ds are not the same, the determination unit 14 subtracts N by one. The lower limit of N is set to zero.
  • step S4095 the determination unit 14 substitutes the waiting cycle number N for the count C.
  • step S409 the cycle data acquisition unit 13 receives the cycle data D3 from the slave #k as a response to the token 200 via the communication controller 84.
  • the process proceeds from step S4091 to step S4092.
  • step S4092 the determination unit 12 determines whether the received periodic data D3 and stored data Ds are the same.
  • stored data Ds periodic data D2.
  • the determination unit 12 determines that the periodic data D3 and the stored data Ds are not the same.
  • the processing proceeds to step S4093.
  • step S4093 when the determination unit 12 determines that the period data D1 and the stored data Ds are not the same, the determination unit 14 subtracts N by one. The lower limit of N is set to zero.
  • step S4095 the determination unit 14 substitutes the waiting cycle number N for the count C.
  • step S409 the cycle data acquisition unit 13 receives the cycle data D3 from the slave #k as a response to the token 200 via the communication controller 84.
  • the process proceeds from step S4091 to step S4092.
  • step S4092 the determination unit 12 determines whether the received periodic data D3 and stored data Ds are the same.
  • stored data Ds periodic data D3.
  • the determination unit 12 determines that the periodic data D3 and the stored data Ds are the same.
  • the processing proceeds to step S4094.
  • step S4094 when the determination unit 12 determines that the cycle data D1 and the stored data Ds are identical, the determination unit 14 adds 1 to N.
  • the upper limit of N is set to zero.
  • step S4095 the determination unit 14 substitutes the waiting cycle number N for the count C.
  • step S4095 the determination unit 14 substitutes the waiting cycle number N for the count C.
  • FIG. 14 will be described by taking the case of three cycles in FIG. 17 as an example.
  • the operations of the determination unit 12, the period data acquisition unit 13, and the determination unit 14 regarding FIG. 17 are the same as the two periods of FIG. 16, so the example of FIG. 17 will be briefly described.
  • step S402 the determination unit 12 determines whether the current count C of slave #k is zero.
  • step S403. the determination unit 12 subtracts 1 from the count C. (4)
  • step S402 the determination unit 12 determines whether the current count C of slave #k is zero.
  • step S404 the determination unit 12 sets the token 200 to the address of slave #k.
  • step S409 the cycle data acquisition unit 13 receives the cycle data D2 from the slave #k. The process proceeds from step S4091 to step S4092.
  • step S4092 the determination unit 12 determines whether the received periodic data D2 and the stored data Ds are the same.
  • stored data Ds periodic data D1. Therefore, the process proceeds to step S4093.
  • step S4093 the determination unit 14 subtracts 1 from N. The lower limit of N is set to zero.
  • step S402 the determination unit 12 determines whether the current count C of slave #k is zero.
  • step S404 the determination unit 12 sets the token 200 to the address of slave #k.
  • step S409 the cycle data acquisition unit 13 receives the cycle data D2 from the slave #k. The process proceeds from step S4091 to step S4092.
  • step S4094 the determination unit 14 adds 1 to N.
  • step S402 the determination unit 12 determines whether the current count C of slave #k is zero.
  • step S403. the determination unit 12 subtracts 1 from the count C.
  • FIG. 14 will be described by taking the case of six cycles of FIG. 18 as an example. Focusing on the difference from FIG. 17, FIG. 18 will be briefly described.
  • step S402 the determination unit 12 determines whether the current count C of slave #k is zero.
  • step S404 the determination unit 12 sets the token 200 to the address of slave #k.
  • step S409 the cycle data acquisition unit 13 receives the cycle data D1 from the slave #k. The process proceeds from step S4091 to step S4092.
  • step S4092 the determination unit 12 determines whether the received periodic data D1 and the stored data Ds are the same.
  • stored data Ds periodic data D1. Therefore, the process proceeds to step S4094 (6)
  • step S4094 the determination unit 14 increments N by one.
  • step S402 the determination unit 12 determines whether the current count C of slave #k is zero.
  • step S403. the determination unit 12 subtracts 1 from the count C. (4)
  • step S402 the determination unit 12 determines whether the current count C of slave #k is zero.
  • step S403. the determination unit 12 subtracts 1 from the count C.
  • step S403 the cycle data is not received from the slave #k, so the number of waiting cycles N does not change.
  • the same operation continues, and the table of FIG. 18 is obtained.
  • the third embodiment is the same as the first embodiment in the configuration of the communication system and the master and slave.
  • the cycle in the token passing system, the cycle is kept constant by a method of transmitting non-cycle data in the remaining time of time T1 of the cycle data receiving process.
  • the method of the second embodiment is a method of allocating the reduced time to the reception of non-periodic data.
  • a method for receiving non-periodic data by the reduced amount of data will be described.
  • FIG. 20 is a flowchart showing processing of the master 10 and the slave.
  • Third Embodiment A third embodiment will be described with reference to FIG. In the third embodiment, only the start time Ts of the periodic data reception process is measured, and the periodic data reception process is repeated every time T0 in FIG.
  • FIG. 20 is different from FIG. 14 in step S41a, step S403a, step S415a, and step S415b.
  • FIG. 20 does not have step S404, step S414, and step S415. Except for these, FIG. 20 is the same as FIG.
  • Steps S401a and S401 are executed by the progression unit 11.
  • Steps S402, S403, S403a, S404, S405, and S406 are executed by the determination unit 12.
  • Steps S408 and S409 are executed by the periodic data acquisition unit 13.
  • Steps S415a and S415b are executed by the non-periodic data acquisition unit 15.
  • Step S4091 is executed by the periodic data acquisition unit 13.
  • Step S4092 is executed by the determination unit 12.
  • Steps S4093, S4094, and S4095 are executed by the determination unit 14.
  • FIG. 16 with two data update cycles FIG. 17 with three data update cycles and six data update cycles Figure 18 of is obtained.
  • the variable U is used.
  • the variable U is a variable of the capacity of non-periodic data to be received.
  • the progression unit 11 sets the variable U to 0 every cycle.
  • the data capacity of periodic data is determined for each slave.
  • a data capacity 823 of periodic data transmitted by each slave is set.
  • the cycle data receiving step of the third embodiment when there is a slave from which cycle data is not received in step S403a, the data capacity of the slave from which cycle data is not received is read out from the data capacity 823 and integrated into variable U.
  • the non-periodic data acquisition unit 15 acquires non-periodic data within the sum of the data capacities of the respective periodic data of the plurality of slaves to which the periodic data request is not transmitted in the periodic data receiving step.
  • the master 10 adds the data capacity of the slave not received in the periodic data receiving process to the variable U (step S403a), and receives the non-periodic data of the data capacity of the value of the variable U (step S415a). ).
  • the data amount of periodic data transmitted by each slave is constant for each slave.
  • the determination unit 12 uses the data capacity 823 of the slave information 820, the determination unit 12 adds the data amount of the slave not transmitting data to the variable U in step S403a.
  • step S415b when the non-periodic data acquisition unit 15 can confirm reception of non-periodic data of the data capacity U, it transmits a transmission stop request to the slave #n, and the process of the periodic data reception process is completed.
  • the reception capacity of periodic data is reduced by lowering the data transmission frequency of periodic data by slaves with low data update frequency, and the data capacity of the reduced periodic data is used for the reception of aperiodic data. Communication efficiency can be improved in terms of communication data capacity.
  • Embodiment 1 to Embodiment 3 of this invention were demonstrated, you may combine and implement two or more among these embodiment. Alternatively, one of these embodiments may be partially implemented. Alternatively, two or more of these embodiments may be implemented in combination. The present invention is not limited to these embodiments, and various modifications can be made as needed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

マスタ(10)は、最新の周期データ受信工程でスレーブ(20)から送信された周期データが、同じスレーブ(20)から前回に送信された周期データと同一か判断する判断部(12)と、周期データが判断されたスレーブ(20)について、判断部(12)による判断結果に基づいて、最新の周期データ受信工程から周期データ要求を送信するべき次の周期データ受信工程までの周期データ要求の待機周期数を決定する決定部(14)と、複数のスレーブ(20,20A)のうち周期的には更新されない非周期データを送信可能なスレーブ(20A)から、非周期データを、送信間隔に基づいて周期データ受信工程で取得する非周期データ取得部(15)とを備える。

Description

通信システム、マスタ装置、通信プログラム及び通信方法
 この発明は、通信システム、マスタ装置、通信プログラム及び通信方法に関する。
 従来、マスタとスレーブとで構成される通信システム、例えばマスタとしてのCPU(Central Processing Unit)ユニットとスレーブとしてのリモートI/O(Input/Output)ユニットで構成される通信システムは、以下のように構成されている。
 マスタは、周期ごとに、すべてのスレーブからのデータを受信するよう設定されており、スレーブはマスタに、一定の時間間隔で、周期的に送信データを送信する。ここで、スレーブがデータを一定の時間間隔で送信するのは、スレーブごとにデータ更新周期が異なるので、データ更新周期の最も短いスレーブのデータ更新周期に合わせるためである。
 従って、通信周期は一定である。この従来のサイクリック通信方式の通信システムでは、通信周期が、おおむねスレーブ数に比例する。
特開平9-219715号公報
 しかしながら、マスタ局とスレーブ局とで構成されるこのような通信システムでは、すべてのスレーブ局が一定の時間間隔で送信データを送信する。このため、送信データをマスタ局に送信する時間間隔が長くてもよいスレーブ局は、同一な送信データを繰り返しマスタ局に送信することになり、不要な送信処理が発生する。このため、マスタ局のCPUの負荷になるとともに、通信効率の低下をもたらすという課題があった。
 マスタ局が送信要求をスレーブに送信すると送信要求を受信したスレーブがデータを送信する方式(ポーリング号式)における上記の課題を解決するために、特許文献1では、マスタ局が各スレーブの送信データの内容変化に応じてデータ送信要求を送信することにより、通信効率の低下を防止しすることを提案している。しかし、この提案では、削減されたデータ通信の部分での、待ち時間が発生してしまう。
 本発明は、この待ち時間の発生のない、通信効率を向上できる通信システム、マスタ装置の提供を目的とする。
この発明の通信システムは、
 周期データ要求を受信した場合に、周期的に更新される周期データを送信する複数のスレーブ装置と、
 前記複数のスレーブ装置の各スレーブ装置から前記周期データを受信しようとする周期データ受信工程が開始した場合に、前記スレーブ装置に前記周期データ要求を送信するマスタ装置と
を備える通信システムにおいて、
 前記マスタ装置は、
 最新の前記周期データ受信工程で前記スレーブ装置から送信された前記周期データが、同じ前記スレーブ装置から前回に送信された前記周期データと同一か判断する判断部と、
 前記判断部によって前記周期データが判断された前記スレーブ装置について、前記判断部による判断結果に基づいて、最新の前記周期データ受信工程から前記周期データ要求を送信するべき次の前記周期データ受信工程までの前記周期データ要求の送信間隔を決定する決定部と、
 前記複数のスレーブ装置のうち周期的には更新されない非周期データを送信可能な前記スレーブ装置から、前記非周期データを、前記送信間隔に基づいて前記周期データ受信工程で取得する非周期データ取得部と
を備える。
 本発明の通信システムによれば、マスタは、判断部、決定部及び非周期データ取得部を備えているので、データ更新頻度の低いスレーブによるデータ送信の頻度を下げて、周期データの通信時間が削減できる。また、データ更新頻度の低いスレーブによるデータ送信の頻度を下げることで、複数のスレーブ全体における、送信されるデータのデータ容量を削減できる。削減された通信時間またはデータ容量を、非周期データ受信に充当することで、通信効率を上げることができる。
実施の形態1の図で、通信システムを示す構成図。 実施の形態1の図で、マスタ装置のハードウェア構成図。 実施の形態1の図で、スレーブ情報を示す図。 実施の形態1の図で、マスタ装置の処理の概略を示すフローチャート。 実施の形態1の図で、周期受信工程を説明する別の図。 実施の形態1の図で、ステップS200とステップS300の概要を示す図。 実施の形態1の図で、ステップS200及びステップS300の内容を示すフローチャート。 実施の形態1の図で、データ更新周期が1周期のスレーブを示す図。 実施の形態1の図で、データ更新周期が2周期のスレーブを示す図。 実施の形態1の図で、データ更新周期が3周期のスレーブを示す図。 実施の形態1の図で、データ更新周期が6周期のスレーブを示す図。 実施の形態1の図で、更新間隔による周期データの受信割合を示す図。 実施の形態1の図で、マスタ装置の変形例を示す図。 実施の形態2の図で、マスタ装置とスレーブとの処理を示すフローチャート。 実施の形態2の図で、図14の動作概要を説明する図。 実施の形態2の図で、データ更新周期が2周期のスレーブを示す図。 実施の形態2の図で、データ更新周期が3周期のスレーブを示す図。 実施の形態2の図で、データ更新周期が6周期のスレーブを示す図。 実施の形態2の図で、トークンを示す図。 実施の形態3の図で、マスタ装置とスレーブとの処理を示すフローチャート。
 以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
実施の形態1.
***構成の説明***
 図1は、実施の形態1の通信システム100を示す機器構成図である。通信システム100は、プロセッサが主要部品であるマスタ装置10と、リモートI/Oユニットが主要部品であるスレーブ装置20,20Aとを備える。以下、マスタ装置10はマスタ10と記す。スレーブ装置はスレーブと記す。通信システム100では、マスタ10と、#1から#nのスレーブとが、通信回線40を介して接続されている。#nのスレーブ20Aには、非周期データを送信する外部装置30Aが接続されている。外部装置30Aは、通常、マスタ10に接続される。通信システム100では、外部装置30Aの非周期データは、トランジェントデータとしてスレーブ#nからマスタ10に送信される。非周期データの例として、カメラの動画情報及びマイクの音声情報がある。
 図2は、マスタ10のハードウェア構成を示す。マスタ10は、プロセッサ81、メモリ82、補助記憶装置83、通信コントローラ84、タイマ85を備えている。プロセッサ81は、マスタ全体を制御する。メモリ82は、それぞれのスレーブ20から送られたデータを格納する。補助記憶装置83は、マスタ10が動作するためのプログラム及び他の情報を不揮発的に保有する。通信コントローラ84は、スレーブ20,20Aとの間のデータ通信を制御する。タイマ85は、現在時刻を提供する。
 図3は、メモリ82に格納されるテーブル形式のスレーブ情報820を示す。スレーブ情報820は、スレーブ番号821、アドレス822、データ容量823、待機周期数824、待機周期数更新フラグ825、カウント826、格納データ827の列を有する。スレーブ番号821にはスレーブの番号が設定されている。アドレス822には各スレーブのアドレスが設定される。データ容量823には、各スレーブの周期データのデータ容量が設定される。待機周期数824には、後述の待機周期数Nが設定される。待機周期数更新フラグ825には、周期データ受信工程で待機周期数Nが更新された場合、フラグが設定される。待機周期数更新フラグ825はステップS203で参照される。カウント826は後述のカウントCが設定される。格納データ827には、受信された最新の周期データが設定される。
***構成の説明***
 マスタ10は、コンピュータである。マスタ10は、プロセッサ81を備えるとともに、メモリ82、補助記憶装置83、通信コントローラ84、タイマ85といった他のハードウェアを備える。プロセッサ81は、信号線86を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 マスタ10は、機能要素として、進行部11、判断部12、周期データ取得部13、決定部14及び非周期データ取得部15を備える。進行部11、判断部12、周期データ取得部13、決定部14及び非周期データ取得部15の機能は、ソフトウェアにより実現される。
 プロセッサ81は、通信プログラムを実行する装置である。通信プログラムは、進行部11、判断部12、周期データ取得部13、決定部14及び非周期データ取得部15の機能を実現するプログラムである。プロセッサ81は、演算処理を行うIC(Integrated Circuit)である。プロセッサ81の具体例は、CPU、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
 メモリ82は、データを一時的に記憶する記憶装置である。メモリ82の具体例は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。メモリ82は、プロセッサ81の演算結果を保持する。
 通信コントローラ84は、複数のスレーブの各スレーブから、データを受信する。
 補助記憶装置83は、データを不揮発的に保管する記憶装置である。補助記憶装置83の具体例は、HDD(Hard Disk Drive)である。また、補助記憶装置83は、SD(登録商標)(Secure Digital)メモリカード、CF(CompactFlash)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記録媒体であってもよい。
 通信プログラムは、プロセッサ81に読み込まれ、プロセッサ81によって実行される。メモリ82には、通信プログラムだけでなく、OS(Operating System)も記憶されている。プロセッサ81は、OSを実行しながら、通信プログラムを実行する。通信プログラム及びOSは、補助記憶装置83に記憶されていてもよい。補助記憶装置83に記憶されている通信プログラム及びOSは、メモリ82にロードされ、プロセッサ81によって実行される。なお、通信プログラムの一部または全部がOSに組み込まれていてもよい。
 マスタ10は、プロセッサ81を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、通信プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ81と同じように、通信プログラムを実行する装置である。
 通信プログラムにより利用、処理または出力されるデータ、情報、信号値及び変数値は、メモリ82、補助記憶装置83、または、プロセッサ81内のレジスタあるいはキャッシュメモリに記憶される。
 通信プログラムは、進行部11、判断部12、周期データ取得部13、決定部14及び非周期データ取得部15の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程をコンピュータに実行させるプログラムである。また、通信方法は、コンピュータであるマスタ10が通信プログラムを実行することにより行われる方法である。通信プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
 次に、この通信システム100の動作について説明する。
***動作の説明***
 まずマスタ10の動作を説明する。
 図4は、マスタ10の処理の概略を示すフローチャートである。まず、周期通信ステップが開始すると、ステップS100において、マスタ10の進行部11はタイマ85から時刻を取得する。進行部11は、タイマ85が開始時刻になるまで待機し、周期通信の開始時刻となった場合に、ステップS200の実行を開始する。ステップS200において、周期データ取得部13は、スレーブから周期データを受信する。ステップS300において、非周期データ取得部15は、スレーブ#nからの非周期データを受信し、周期データ受信工程の1周期が終了する。
(周期データ受信工程)
 図5は、周期データ受信工程を説明する図である。周期データ受信工程とは、マスタ10が複数のスレーブの各スレーブから、周期データを受信しようとする工程である。
 実施の形態1では、具体的には、周期データ受信工程は、後述する図7のステップS201からステップS303の工程である。
 また、実施の形態2では、周期データ受信工程は、図14のステップS401からステップS416の工程である。
 また、実施の形態3では、周期データ受信工程は、図20のステップS401aからステップS416の工程である。
 周期データとは、スレーブが保有するデータであり、周期的に更新されるデータである。周期データ受信工程は、周期的に、繰り返し実行される。非周期データとは、周期的には更新されないデータである。
 図5では、n-1周期、n周期、n+1周期の周期データ受信工程を示している。
(1)時間T0は、前の周期の周期データ受信工程の開始時刻Tsから、次の周期の周期データ受信工程の開始時刻Tsまでの時間である。
(2)時間T1は、周期データ受信工程の時間を示す。
(3)時間Tsは、周期データ受信工程の開始時間を示す。
(4)時間Teは、周期データ受信工程の終了時間を示す。
(5)時間T21、T22,T23は、周期データ受信工程のうち、非周期データを受信する時間を示す。
 周期データ受信工程ではマスタ10は、スレーブから周期データを取得する。スレーブからの周期データの取得が終了した場合、マスタ10は、周期データ受信工程の時間T1の残り時間で、スレーブ#nから非周期データを取得する。図5では、非周期データの受信時間は、n-1周期では時間T21、n周期では時間T22、n+1周期では時間T23である。
 図6は、周期データ受信のステップS200と、非周期データ受信のステップS300との概要を示す図である。図6では、4台のスレーブを示している。スレーブ#4が、外部装置30Aの接続されたスレーブ#nに相当する。図6において、左は周期データ受信工程の第1周期を示し、中央は周期データ受信工程の第2周期を示し、右は周期データ受信工程の第3周期を示す。第1周期において、周期データ受信工程の時間T1で、マスタ10は、スレーブ#1、#2、#3から周期データD11,D21,D31を受信する。第2周期において、周期データ受信工程の時間T1で、マスタ10は、スレーブ#1、#2、#3から周期データD12,D22,D31を受信する。第3周期において、周期データ受信工程の時間T1で、マスタ10は、スレーブ#1、#2から周期データD13,D23を受信する。また、マスタ10はスレーブ#4から非周期データDnを受信する。第3周期では、マスタ10は、スレーブ#3から周期データを受信していない。この理由は、スレーブ#3の場合、第1周期、第2周期の周期データがD31であり、更新されていないためである。一方、スレーブ#1では、第1周期、第2周期の周期データはD11、D12であり、スレーブ#2では、第1周期、第2周期の周期データはD21、D22である。両方のスレーブでは周期データが更新されているため、第3周期において、マスタ10はスレーブ#1、#2から周期データを受信する。第3周期では、スレーブ#3の周期データを受信する時間が、スレーブ#4から非周期データを受信する時間に割り当てられている。
 実施の形態1の特徴は、周期データ受信工程において周期データを受信しないスレーブが1つ又は複数有る場合に、周期データを受信しない時間を、非周期データの受信に割り当てることにある。つまり、図5の時間T21、T22、T23は、周期データ受信工程において周期データを受信しないスレーブが1つ又は複数有る場合に、周期データを受信しない時間を、非周期データの受信に割り当てることを示している。
 図4のステップS200及びステップS300の処理の詳細である図7を以下に説明する。実施の形態1では、マスタ10のタイマ85の時刻と、各スレーブの時刻とが同期されている。周期データ受信工程の周期の開始及び終了は、マスタ10と各スレーブとの間で同じ時刻と認識されている。
 図7は、ステップS200及びステップS300である、周期データ受信と非周期データ受信とを示すフローチャートである。
 図8、図9、図10及び図11は、あるスレーブ#kのデータの更新周期が、それぞれ、1周期、2周期、3周期及び6周期の場合を示している。1周期を示す周期<i>(i=1,2,3,・・・)は、1周期の周期データ受信工程を意味する。例えば、図9は周期データ受信工程の2周期ごとに、周期データが更新される状態を示している。図8のデータ更新周期が1周期の場合、マスタ10は、スレーブ#kから周期ごとに周期データを受信する。
 図9の2周期の場合を例に、図7を説明する。
図9は以下のようである。
1行目の<1>、<2>、・・・は、周期データ受信工程の1周期を示す。
2行目のデータ番号は、周期データのデータ番号である。
3行目の受信の黒丸は、マスタ10が、データ番号で示される周期データを受信したことを示す。
4行目目のカウントC1は、図7のステップS205の判断時におけるカウントCである。
5行目の待機周期数N1は、図7のステップS203の判断時における最新の待機周期数Nである。
6行目のC1/C2は、カウントC1と、その周期データ受信工程の最終のカウントCであるカウントC2を示す。
7行目のN1/N2は、待機周期数N1と、その周期データ受信工程の最終の待機周期数Nである待機周期数N2を示す。
8行目は、ステップS203の判断結果を示す。
図8、図10及び図11も同様である。
 カウントC1は、周期データ受信工程のステップS205におけるカウントCである。
 カウントC2は、周期データ受信工程の最終的なカウントCである。
 待機周期数N1は、周期データ受信工程の開始時の待機周期数Nである。
 待機周期数N2は、周期データ受信工程の終了時の待機周期数Nである。なお、待機周期数N1は一つ前の周期データ受信工程の待機周期数N2である。
 周期<1>
(1)ステップS212において、進行部11により変数iにi+1=kが代入される。
(2)ステップS203において、判断部12は、スレーブ#kのNが更新されているか判断する。周期<1>では、初期値として待機周期数更新フラグ825には更新を示す1が設定されているとする。なお、その周期の処理で待機周期数の更新がない場合、待機周期数更新フラグ825は決定部14によって更新なしを示す0に設定される。また、初期値としてN1=0が設定されているとする。判断部12は、更新されていると判断し、処理はステップS204に進む。
(3)ステップS204において、判断部12は変数であるカウントCにNを代入する。この場合は、N=0であるのでC=0である。
(4)ステップS205において、判断部12はC=0か判断する。ステップS204よりC=0であるので、判断部12はC=0と判断し、処理はステップS206に進む。
(5)ステップS206において、周期データ取得部13は、周期データを要求する周期データ要求を、通信コントローラ84を介して、スレーブ#kに送信する。このように、マスタ10は、複数のスレーブの各スレーブから周期データを受信しようとする周期データ受信工程が開始した場合に、スレーブに周期データ要求を送信する。
(6)ステップS207において、周期データ取得部13は、通信コントローラ84を介して、周期データ要求への応答として、周期データD1をスレーブ#kから受信する。このように、スレーブ20は周期データ要求を受信した場合に、周期データを送信する。
(7)ステップS208において、判断部12は、最新の周期データ受信工程でスレーブから送信された周期データが、同じスレーブから前回に送信された周期データと同一か判断する。具体的には、判断部12は以下のように判断する。判断部12は、受信した周期データD1と、格納データDsとが同一か判断する。格納データDsは、メモリ82のスレーブ情報820におけるスレーブ#kの格納データ827に格納されているデータである。周期<1>では、スレーブ#kの格納データ827にデータは格納されていないとし、判断部12は、周期データD1と格納データDsとは同一ではないと判断する。処理はステップS209に進む。
(8)ステップS209において、決定部14は、判断部12によって周期データが判断されたスレーブについて、判断部12による判断結果に基づいて、周期データ要求の送信間隔を決定する。周期データ要求の送信間隔とは、最新の周期データ受信工程から周期データ要求を送信するべき次の周期データ受信工程までの周期データ要求の送信間隔である。待機周期数Nが周期データ要求の送信間隔に相当する。判断部12によって周期データD1と格納データDsとは同一ではないと判断された場合、決定部14は、Nを1減算する。Nの下限は0と設定されているので、ステップS209では、N2=N1-1=0-1=0である。判断部12によって周期データが判断されたスレーブ#kについて、決定部14は、判断部12による判断結果に基づいて、最新の周期データ受信工程から周期データ要求を送信するべき次の周期データ受信工程までの周期データ要求の送信間隔を決定する。
(9)以上の結果が図9の周期<1>の列である。
(10)周期<1>の処理により、スレーブ情報820が更新される。他の周期<i>(i:1,2,3・・・)も同様である。
 周期<2>
 周期<2>では、スレーブ#kについて、図7の2回目の処理が開始される。
(1)ステップS212において、進行部11により変数iにkが代入され、処理はステップS213からステップS203に戻る。
(2)ステップS203において、判断部12は、スレーブ#kのNが更新されているか判断する。
周期<1>の7行目のN1/N2より、Nは更新されていない。よって、判断部12は、Nの更新はされていないと判断する。処理はステップS205に進む。
 Nの更新の有無は、実際には、判断部12が、スレーブ情報820の待機周期数更新フラグ825を参照して判断する。N1/N2は説明のために使用している。なお、待機周期数更新フラグ825の代わりに、N1/N2の情報をスレーブ情報820に持たせてもよい。
(3)周期<1>の4行目より、ステップS205では、C1=0である。判断部12はC=0と判断し、処理はステップS206に進む。
(4)ステップS206において、周期データ取得部13は、周期データ要求を、通信コントローラ84を介して、スレーブ#kに送信する。
(5)ステップS207において、周期データ取得部13は、通信コントローラ84を介して、周期データ要求への応答として、周期データD1をスレーブ#kから受信する。
(6)ステップS208において、判断部12は、周期<2>で受信した周期データD1と、格納データDsとが同一か判断する。現在、格納データDs=周期データD1である。判断部12は、周期データD1と格納データDsとは同一と判断する。処理はステップS210に進む。
(7)ステップS210において、決定部14は、判断部12によって周期データが判断されたスレーブについて、判断部12による判断結果に基づいて、周期データ要求の送信間隔を決定する。周期データ要求の送信間隔とは、周期<1>のステップS209で述べたとおりである。判断部12によって周期データD1と格納データDsとが同一と判断された場合、決定部14は、Nを1増加する。なお、Nの上限は設定することができる。ステップS210では、N2=N1+1=0+1=1である。
(8)ステップS212において、進行部11は、この場合、変数iの値をk+1にする。
(9)ステップS213において、進行部11は、i>k+1か判断する。進行部11は、スレーブ#1からスレーブ#n-1までの処理が終了したかを判断する。終了していない場合は、処理はステップS203に戻り、スレーブ#k+1に対する処理が開始する。終了した場合は、処理はステップS214に進む。
(10)以上の結果が図9の周期<2>の列である。
 周期<3>
 周期<3>では、スレーブ#kについて、図7の3回目の処理が開始される。
(1)ステップS212において、進行部11により変数iにkが代入され、処理はステップS213からステップS203に戻る。
(2)ステップS203において、判断部12は、スレーブ#kのNが更新されているか判断する。
周期<2>の7行目のN1/N2より、Nは更新されている。よって、判断部12は、Nは更新されていると判断する。処理はステップS204に進む。
(3)ステップS204において、判断部12はカウントCにNを代入する。この場合は、周期<3>の5行目により、N=1であるのでC=1になる。よってステップS205では、C1=1である。
(4)ステップS205において、判断部12はC=0は成立しないと判断する。処理はステップS211に進む。
(5)ステップS211において、決定部14は、カウントCを1減算する。1減算された値がカウントC2であり、C2=0である。
(6)以下、周期<2>と同様にステップS212以降の処理が行われる。
(7)以上の結果が図9の周期<3>の列である。
 周期<4>
 周期<4>では、スレーブ#kについて、図7の4回目の処理が開始される。
(1)ステップS212において、進行部11により変数iにkが代入され、処理はステップS213からステップS203に戻る。
(2)ステップS203において、判断部12は、スレーブ#kのNが更新されているか判断する。周期<3>の7行目のN1/N2より、Nは更新されていない。よって、判断部12は、Nの更新はされていないと判断する。処理はステップS205に進む。
(3)周期<3>の6行目より、周期<3>のカウントC2は、C2=0である。よって、周期<4>のステップS205では、C1=0である。判断部12はC=0と判断する。よって、処理はステップS206に進む。
(4)ステップS206において、周期データ取得部13は、周期データ要求を、通信コントローラ84を介して、スレーブ#kに送信する。
(5)ステップS207において、周期データ取得部13は、通信コントローラ84を介して、周期データ要求への応答として、周期データD2をスレーブ#kから受信する。
(6)ステップS208において、判断部12は、周期<4>で受信した周期データD2と、格納データDsとが同一か判断する。現在、格納データDs=周期データD1である。判断部12は、受信した周期データD2と、格納データDsとは同一ではない判断する。判断部12は、格納データDsを周期データD2に更新する。処理はステップS209に進む。
(7)ステップS209において、判断部12によって周期データD1と格納データDsとが同一ではない判断された場合、決定部14は、Nを1減算する。ステップS209におけるNはN=1
であるので、ステップS209では、N2=1-1=0-1=0である。カウントC2は更新されず、値0が維持される。
(8)以下、周期<3>と同様にステップS212以降の処理が行われる。
(9)以上の結果が図9の周期<4>の列である。
 周期<5>
 周期<5>では、スレーブ#kについて、図7の5回目の処理が開始される。
(1)ステップS212において、進行部11により変数iにkが代入され、処理はステップS213からステップS203に戻る。
(2)ステップS203において、判断部12は、スレーブ#kのNが更新されているか判断する。周期<4>の7行目のN1/N2より、Nは更新されている。よって、判断部12は、Nは更新されていると判断する。処理はステップS204に進む。
(3)ステップS204において、判断部12は変数であるカウントCにNを代入する。この場合は、周期<5>の7行目により、N1=0であるのでC1=0になる。よってステップS205では、C1=0である。
(4)ステップS205において、判断部12はC=0が成立すると判断する。処理はステップS206に進む。
(5)ステップS206において、周期データ取得部13は、周期データ要求を、通信コントローラ84を介して、スレーブ#kに送信する。
(6)ステップS207において、周期データ取得部13は、通信コントローラ84を介して、周期データ要求への応答として、周期データD3をスレーブ#kから受信する。
(7)ステップS208において、判断部12は、周期データD3と、格納データDsとが同一か判断する。現在、格納データDs=周期データD2である。判断部12は、受信した周期データD3と、格納データDsとは同一ではない判断する。処理はステップS209に進む。
(8)ステップS209において、判断部12によって周期データD3と格納データDsとが同一ではない判断された場合、決定部14は、Nを1減算する。ステップS209の処理直前のNはN=0であるので、ステップS209では、N2=N-1=0-1=0である。カウントCは更新されず、カウントC2は値0が維持される。
(9)以下、周期<4>と同様にステップS212以降の処理が行われる。
(10)以上の結果が図9の周期<5>の列である。
 周期<6>
 周期<6>では、スレーブ#kについて、図7の6回目の処理が開始される。
(1)ステップS212において、進行部11により変数iにkが代入され、処理はステップS213からステップS203に戻る。
(2)ステップS203において、判断部12は、スレーブ#kのNが更新されているか判断する。周期<5>の7行目のN1/N2より、Nは更新されていない。よって、判断部12は、Nの更新はされていないと判断する。処理はステップS205に進む。
(3)周期<5>の6行目より、周期<5>におけるカウントC2は、C2=0である。よって周期<6>のステップS205では、C1=0である。判断部12はC=0と判断する。よって処理はステップS206に進む。
(4)ステップS206において、周期データ取得部13は、周期データ要求を、通信コントローラ84を介して、スレーブ#kに送信する。
(5)ステップS207において、周期データ取得部13は、通信コントローラ84を介して、周期データ要求への応答として、周期データD3をスレーブ#kから受信する。
(6)ステップS208において、判断部12は、受信した周期データD3と、格納データDsとが同一か判断する。現在、格納データDs=周期データD3である。判断部12は、受信した周期データD3と、格納データDsとは同一と判断する。処理はステップS210に進む。
(7)ステップS210において、判断部12によって、受信された周期データD3と、格納データDsとが同一と判断された場合、決定部14は、Nを1増加する。Nの上限は設定されている。
ステップS210では、N2=N+1=0+1=1である。
(8)以下、周期<5>と同様にステップS212以降の処理が行われる。
(9)以上の結果が図9の周期<6>の列である。
 周期<6>以降も図7に基づき、同様の処理が繰り返される。
<非同期データの受信処理>
 ステップS214で周期データの受信から非周期の受信へと処理が移行する。処理は、ステップS214からステップS300に進む。ステップS300は、非周期データ取得部15による非同期データの受信処理である。
(1)ステップS300において、非周期データの受信処理が開始する。
(2)ステップS301において、非周期データ取得部15は、通信コントローラ84を介して、スレーブ#nにデータ送信要求を送る。外部装置30Aと接続されたスレーブ#nは、データ送信要求の応答として、非周期データをマスタ10に送信する。
(3)ステップS302において、非周期データ取得部15は、複数のスレーブのうち周期的には更新されない非周期データを送信可能なスレーブから、非周期データを、決定部14が決定した送信間隔に基づいて周期データ受信工程で取得する。具体的には、マスタ10の非周期データ取得部15は、タイマ85から取得する時刻が周期終了時刻となるまで、非周期データの受信を継続する。
 このように、非周期データ取得部15は、少なくとも一つのスレーブに周期データ要求の送信がされない周期データ受信工程において非周期データを取得可能な期間であり、決定部14が決定した送信間隔から定まる期間である取得期間で非周期データを取得する。図7のフローチャートでは、ステップS201でタイマ85の時刻により周期データの受信処理が開始し、ステップS302においてタイマ85の時刻で非周期データの受信処理が終了する。ステップS201からステップS302までの時間は周期データを受信するための制限時間であるが、周期データを送信しないスレーブの存在によって削減された周期データの受信時間が非周期データの受信に充てられる。非周期データの受信に充てられる受信時間が、決定部14が決定した送信間隔から定まる取得期間である。
 このように、周期データ受信工程では、受信するべき制限時間が決められている。非周期データ取得部15は、制限時間の以内で、非周期データを取得する。
(4)ステップS303において、非周期データの受信処理が終了する。
 周期<6>以降も同様の処理が実行されることで、図9の表が得られる。
図9からは以下のことが言える。データ受信のある周期<i>での最終的な待機周期数N2は、周期データ要求を送信するべき次の周期データ受信工程までの周期データ要求の送信間隔を示している。
例えば、
周期<1>はN2=0より送信間隔=0である。つまり次の周期データが受信されるのは、周期<2>で周期データの時である。
周期<2>はN2=1より送信間隔=1である。つまり次の周期データが受信されるのは、周期<4>の時である。
 図10の3周期の場合は、以下のようである。
周期<1>はN2=0より送信間隔=0である。つまり周期<2>で次の周期データが受信される。
周期<2>はN2=1より送信間隔=1である。つまり周期<4>で次の周期データが受信される。
周期<4>はN2=0より送信間隔=0である。つまり周期<5>で次の周期データが受信される。
周期<5>はN2=1より送信間隔=1である。つまり周期<7>で次の周期データが受信される。
周期<7>はN2=0より送信間隔=0である。つまり周期<8>で次の周期データが受信される。
周期<8>はN2=1より送信間隔=1である。つまり周期<10>で周期データが受信される。
以下は同様である。
 図11の6周期の場合は、さらに明らかである。
周期<1>はN2=0より送信間隔=0である。つまり周期<2>で次の周期データが受信される。
周期<2>はN2=1より送信間隔=1である。つまり周期<4>で次の周期データが受信される。
周期<4>はN2=2より送信間隔=2である。つまり周期<7>で次の周期データが受信される。
周期<7>はN2=1より送信間隔=1である。つまり周期<9>で次の周期データが受信される。
周期<9>はN2=2より送信間隔=2である。つまり周期<12>で次の周期データが受信される。
周期<12>はN2=3より送信間隔=3である。つまり周期<16>で周期データが受信される。
以下は同様である。
図9から図11で述べたN2は以下のように決まる。
N2=前回の送信間隔+1
あるいは、
N2=前回の送信間隔-1
+1は、受信データ=格納データの場合である。
-1は、受信データ=格納データが成立しない場合である。
周期<2>では前回の送信間隔=0、データ同一で+1のためN2=1である。
周期<4>では前回の送信間隔=1、データ同一で+1のためN2=2である。
周期<7>では前回の送信間隔=2、データ同一でないので-1のためN2=1である。周期<9>では前回の送信間隔=1、データ同一で+1のためN2=2である。
周期<12>では前回の送信間隔=2、データ同一で+1のためN2=3である。
以下は同様である。
 従って、決定部14は、前回に周期データが送信された周期データ受信工程と最新の周期データ受信工程との間の周期データ要求の送信間隔と、判断部12による判断結果とを用いて、最新の周期データ受信工程から周期データ要求を送信するべき次の周期データ受信工程までの周期データ要求の送信間隔を決定する。待機周期数Nは、次の周期データ受信工程までの送信間隔の最大値を示す。
 カウントC1は、待機周期数Nの減少状態、つまり、周期データが受信される次の周期データ受信工程までの送信間隔を示す。
***実施の形態1の効果***
 実施の形態1のマスタ10は、データ更新頻度の低いスレーブのデータ送信頻度を下げることで周期データの通信時間を削減し、削減された通信時間を、非周期データ受信の時間にあてるので、通信効率を上げることができる。
 図12は、実施の形態1の効果を示す図であり、更新間隔による周期データの受信割合を示す。図12の横軸は更新間隔であり、縦軸は受信割合を%で示している。横軸の更新間隔とは、周期データの更新周期を意味する。2周期の図9、3周期の図10、6周期の図11では、更新間隔は、それぞれ2,3、6である。マスタ10によるデータの受信割合は、nを更新間隔とした場合、安定すると2/n×100%となる。
 例えば図11に示す、通信周期が6周期でデータ更新が発生するスレーブの場合、n=6である。このスレーブではデータ送信開始から12周期の間では受信頻度は1/2であるが、その後安定すると、受信頻度は2/6=1/3となり、受信頻度は約33%になる。図12は安定した状態における周期データの受信割合を示しており、周期6であれば、横軸が6の位置における縦軸の受信割合は約33%になる。
 なお、安定すると受信割合が2/n×100%になるとは、周期によっては、データ送信開始時に、更新間隔が2/n×100%とならない場合があるためである。
 また、n=1のときの受信割合は100%、n=2のときの受信割合は3/4×100%である。
 このように、実施の形態1によれば、周期データの受信割合が削減される。周期データについて削減された時間は、外部装置30Aとの非周期通信に使用されるので、通信時間を有効活用できる。また、これにより、外部装置30Aの周期データを送信するスレーブと同一ネットワークに接続できるので、配線を省略できる効果もある。
 また、特許文献1のように各スレーブの周期を求め、送信周期を変更する構成ではない。実施の形態1のマスタ10は、不要な送信を間引く構成である。そのため、実施の形態1では、マスタ10は、スレーブのデータ更新周期が変更された場合でも、柔軟に対応できる。
 <変形例>
 実施の形態1では、マスタ10の機能がソフトウェアで実現されるが、変形例として、マスタ10の機能がハードウェアで実現されてもよい。
 図13は、実施の形態1の変形例に係るマスタ10の構成を示す。マスタ10は、電子回路909、補助記憶装置83、通信コントローラ84、タイマ85を備える。電子回路909は、進行部11、判断部12、周期データ取得部13、決定部14、非周期データ取得部15及びメモリ82の機能を実現する専用の電子回路である。電子回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。FPGAは、Field-Programmable Gate Arrayの略語である。マスタ10の構成要素の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。別の変形例として、マスタ10の構成要素の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
 プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、マスタ10において、進行部11、判断部12、周期データ取得部13、決定部14及び非周期データ取得部15の機能は、プロセッシングサーキットリにより実現される。マスタ10において、進行部11、判断部12、周期データ取得部13、決定部14及び非周期データ取得部15の「部」を、「工程」に読み替えてもよい。また、マスタ10の進行部11、判断部12、周期データ取得部13、決定部14及び非周期データ取得部15による動作は、通信方法としてとらえることが可能である。
実施の形態2.
 実施の形態2は、通信システム、マスタ及びスレーブの構成は、実施の形態1と同じである。実施の形態1では図7のステップS206において周期データ要求を送信したが、実施の形態2では、周期データ要求として、トークンフレームと呼ばれる送信権を使用する。以下、トークンフレームはトークンいう。マスタ10は、スレーブ間で順番にトークンを巡回させてスレーブから周期データを受信し、また、スレーブ#nから非周期データを受信する。トークンを巡回させる方法はトークンパッシング方式とばれる。トークンパッシング方式では、スレーブはトークンを保持している間、周期データを送信する。
 図14から図19を参照して実施の形態2を説明する。
図14は、マスタ10とスレーブとの処理を示すフローチャートである。
図15は、図14の動作概要を説明する図である。
図16は、スレーブ#kのデータの更新周期が、2周期の場合を示す。
図17は、スレーブ#kのデータの更新周期が、3周期の場合を示す。
図18は、スレーブ#kのデータの更新周期が、6周期の場合を示す。
図19は、トークン200の内容を示す。
 図19は、トークン200の内容を示している。トークン200は、フレームヘッダ201、スレーブのアドレス202及びフレームフッタ203を持つ。フレームヘッダ201とフレームフッタ203の間にスレーブのアドレス202が格納される。アドレスの最後は必ずスレーブ#nのアドレスである。まず、図15を参照して、図14の動作の概要を説明する。
 図15は、図6の周期データ受信工程の第3周期に対応する。第1周期、第2周期では、各スレーブは図6と同じ周期データを送信したとする。図15において、マスタ10は、トークン200に、スレーブ#1、#2及びスレーブ#4のアドレスを設定するが、スレーブ#3のアドレスは設定しない。このため、マスタ10はスレーブ#3から周期データDを受信しない。この理由は、図6の説明で述べたように、スレーブ#3の場合、第1周期、第2周期の周期データがD31であり、更新されていないためである。スレーブ#3のアドレスはトークン200に設定されないので、トークン200はスレーブ#3に保持されない。よって、スレーブ#3は周期データを送信しない。トークン200がマスタ10によって送信されてからマスタ10に戻るまでの時間T1は決められている。時間T1の開始の時間Tsは図14のステップS401であり、終了の時間Teは図14のステップS416である。
 実施の形態2の特徴は、実施の形態1と同じである。つまり、周期データ受信工程において、マスタ10によって周期データが受信されないスレーブが1つ又は複数有る場合に、周期データの送信されない時間を、スレーブ#nからの非周期データの受信に割り当てることにある。実施の形態2では、周期データ要求として、トークン200へのアドレス設定を用いる点が、実施の形態1と異なる。
 図14を参照して動作を説明する。ステップS401は進行部11によって実行される。ステップS402、S403、S404、S405、S406は、判断部12によって実行される。ステップS407、S408、S409は周期データ取得部13によって実行される。ステップS414,S415は非周期データ取得部15によって実行される。ステップS4091は周期データ取得部13によって実行される。ステップS4092は判断部12によって実行される。ステップS4093、S4094、S4095は決定部14によって実行される。
 ステップS401において、進行部11は変数iに1を設定する。ステップS402からステップS406のループにおいて、判断部12は、スレーブ#1から順に、現在のカウントCを確認する。ステップS404において、判断部12は、カウントCが0のスレーブのアドレスを、トークン200に追加する。判断部12は、スレーブ情報820からスレーブのアドレスを取得する。0より大きいカウントCのスレーブからのデータは受信しないので、ステップS403において、判断部12は、カウントCを1減算する。
 ステップS402からステップS406が判断部12によって繰り返され、スレーブ#n-1までの処理が終了した場合、ステップS407において、周期データ取得部13は、タイマ85を開始して、通信周期の計測を開始する。ステップS408において、周期データ取得部13は、1番目のデータを受信すべきスレーブにトークン200を送信した後、ステップS409において、1番目のスレーブから周期データを受信する。ステップS409の内容は図14の左下に示している。ステップS409の詳細は後述する。ステップS410において、トークン200を保持しているスレーブが、トークン200から次のスレーブのアドレスを読み出す。ステップS412において、読み出されたアドレスがスレーブ#n以外の場合、トークン200を保持しているスレーブは、次のスレーブにトークン200を渡す。
 ステップS413において、最後のスレーブは、スレーブ#nにトークン200を送信する。ステップS414において、マスタ10の非周期データ取得部15は、タイマ85から、ステップS407のタイマ開始からの経過時間を取得する。ステップS415において、非周期データ取得部15は、スレーブ#nに、規定周期時間である時間T1の残り時間だけ非周期データを送信させる。ステップS416において、データ送信を終了したスレーブ#nは、マスタ10にトークン200を送信し、処理は終了する。
 以下では、図16の2周期の場合を例に、図14を説明する。図14については、スレーブ#kを例に、スレーブ#kの待機周期数N及びカウントCの変化に着目して説明する。以下では、待機周期数N及びカウントCに関係のある、ステップS402からステップS404、ステップS409,ステップS501からステップS505を説明する。
カウントC1は、図14の処理の開始時のカウントCである。
C2は、図14の処理の最終的なカウントCである。
N1は、図14の処理の開始時の待機周期数Nである。
N2は、図14の処理の最終的な待機周期数Nである。
 なお、カウントC1と待機周期数N1は、それぞれ、一つ前の図14の処理におけるカウントC2、待機周期数N2である。
 周期<1>
(1)ステップS405において、判断部12により変数iにi+1=kが代入される。
(2)ステップS402において、判断部12は、スレーブ#kの現在のカウントCが0か判断する。周期<1>では、初期値としてC1=0及びN1=0が設定されているとする。よって判断部12はC=0と判断する。処理はステップS404に進む。
(3)ステップS404において、判断部12は、トークン200にスレーブ#kのアドレスを設定する。トークン200にアドレスが設定されたスレーブからのみ、マスタ10は周期データを取得できる。
(4)ステップS409において、周期データ取得部13は、通信コントローラ84を介して、トークン200への応答として、周期データD1をスレーブ#kから受信する。処理はステップS4091からステップS4092に進む。
(5)ステップS4092において、判断部12は、受信した周期データD1と、格納データDsとが同一か判断する。格納データDsは、メモリ82におけるスレーブ#kの格納データ827に格納されているデータである。周期<1>では、スレーブ#kの格納データ827にデータは格納されていないとし、判断部12は、周期データD1と格納データDsとは同一ではないと判断する。処理はステップS4093に進む。
(6)ステップS4093において、判断部12によって周期データD1と格納データDsとは同一ではないと判断された場合、決定部14は、Nを1減算する。
Nの下限は0と設定されているので、ステップS4093では、N2=N1-1=0-1=0である。
(7)以上の結果が図16の周期<1>の列である。
 周期<2>
 周期<2>では、スレーブ#kについて、図14の2回目の処理が開始される。
(1)ステップS405において、判断部12により変数iにi+1=kが代入される。
(2)ステップS402において、判断部12は、スレーブ#kの現在のカウントCが0か判断する。周期<2>の待機周期数N1、カウントC1は周期<2>の待機周期数N2、カウントC2であるので、C1=0及びN1=0である。よって判断部12はC=0と判断する。処理はステップS404に進む。
(3)ステップS404において、判断部12は、トークン200にスレーブ#kのアドレスを設定する。
(4)ステップS409において、周期データ取得部13は、通信コントローラ84を介して、トークン200への応答として、周期データD1をスレーブ#kから受信する。処理はステップS4091からステップS4092に進む。
(5)ステップS4092において、判断部12は、受信した周期データD1と、格納データDsとが同一か判断する。ここでは、格納データDs=周期データD1である。判断部12は、周期データD1と格納データDsとは同一と判断する。処理はステップS4094に進む。
(6)ステップS4094において、判断部12によって周期データD1と格納データDsとが同一と判断された場合、決定部14は、Nを1増加する。Nの上限は設定されている。ステップS4094では、N=N1+1=0+1=1=N2である。
(7)ステップS4095において、決定部14はカウントCに待機周期数Nを代入する。カウントCは、C=1=C2になる。
 周期<3>
 周期<3>では、スレーブ#kについて、図14の3回目の処理が開始される。
(1)ステップS405において、判断部12によって変数iにi+1=kが代入される。
(2)ステップS402において、判断部12は、スレーブ#kの現在のカウントCが0か判断する。周期<2>の待機周期数N1、カウントC1は周期<2>の待機周期数N2、カウントC2であるので、C1=1及びN1=1である。よって判断部12はC=1と判断する。処理はステップS403に進む。
(3)ステップS403において、判断部12は、カウントCを1減算する。
(4)処理がステップS403に進む場合は、周期データはスレーブ#kから受信されないので、待機周期数Nに変化はない。よって、N2=1、C2=0である。
 周期<4>
 周期<4>では、スレーブ#kについて、図14の4回目の処理が開始される。
(1)ステップS405において、判断部12によって変数iにi+1=kが代入される。
(2)ステップS402において、判断部12は、スレーブ#kの現在のカウントCが0か判断する。周期<4>の待機周期数N1、カウントC1は周期<3>の待機周期数N2、カウントC2であるので、C1=0及びN1=1である。よって判断部12はC=0と判断する。処理はステップS404に進む。
(3)ステップS404において、判断部12は、トークン200にスレーブ#kのアドレスを設定する。
(4)ステップS409において、周期データ取得部13は、通信コントローラ84を介して、トークン200への応答として、周期データD2をスレーブ#kから受信する。処理はステップS4091からステップS4092に進む。
(5)ステップS4092において、判断部12は、受信した周期データD2と、格納データDsとが同一か判断する。ここでは、格納データDs=周期データD1である。判断部12は、周期データD1と格納データDsとは同一ではないと判断する。処理はステップS4093に進む
(6)ステップS4093において、判断部12によって周期データD1と格納データDsとが同一ではないと判断された場合、決定部14は、Nを1減算する。Nの下限はゼロに設定されている。ステップS4093では、N=N1-1=1-1=0=N2である。
(7)ステップS4095において、決定部14はカウントCに待機周期数Nを代入する。
カウントCはC=0=C2になる。よって、C2=0、N2=0である。
 周期<5>
 周期<5>では、スレーブ#kについて、図14の5回目の処理が開始される。
(1)ステップS405において、判断部12により変数iにi+1=kが代入される。
(2)ステップS402において、判断部12は、スレーブ#kの現在のカウントCが0か判断する。周期<5>の待機周期数N1、カウントC1は周期<4>の待機周期数N2、カウントC2であるので、C1=0及びN1=0である。よって判断部12はC=0と判断する。処理はステップS404に進む。
(3)ステップS404において、判断部12は、トークン200にスレーブ#kのアドレスを設定する。
(4)ステップS409において、周期データ取得部13は、通信コントローラ84を介して、トークン200への応答として、周期データD3をスレーブ#kから受信する。処理はステップS4091からステップS4092に進む。
(5)ステップS4092において、判断部12は、受信した周期データD3と、格納データDsとが同一か判断する。ここでは、格納データDs=周期データD2である。判断部12は、周期データD3と格納データDsとは同一ではないと判断する。処理はステップS4093に進む。
(6)ステップS4093において、判断部12によって周期データD1と格納データDsとが同一ではないと判断された場合、決定部14は、Nを1減算する。Nの下限はゼロに設定されている。ステップS4093では、N=N1-1=1-1=0=N2である。
(7)ステップS4095において、決定部14はカウントCに待機周期数Nを代入する。カウントCはC=0=C2になる。よって、C2=0、N2=0である。
 周期<6>
 周期<6>では、スレーブ#kについて、図14の6回目の処理が開始される。
(1)ステップS405において、判断部12によって変数iにi+1=kが代入される。
(2)ステップS402において、判断部12は、スレーブ#kの現在のカウントCが0か判断する。周期<6>の待機周期数N1、カウントC1は周期<5>の待機周期数N2、カウントC2であるので、C1=0及びN1=0である。よって判断部12はC=0と判断する。処理はステップS404に進む。
(3)ステップS404において、判断部12は、トークン200にスレーブ#kのアドレスを設定する。
(4)ステップS409において、周期データ取得部13は、通信コントローラ84を介して、トークン200への応答として、周期データD3をスレーブ#kから受信する。処理はステップS4091からステップS4092に進む。
(5)ステップS4092において、判断部12は、受信した周期データD3と、格納データDsとが同一か判断する。ここでは、格納データDs=周期データD3である。判断部12は、周期データD3と格納データDsとは同一と判断する。処理はステップS4094に進む。
(6)ステップS4094において、判断部12によって周期データD1と格納データDsとが同一と判断された場合、決定部14は、Nを1加算する。Nの上限はゼロに設定されている。ステップS4094では、N=N1+1=0+1=1=N2である。
(7)ステップS4095において、決定部14はカウントCに待機周期数Nを代入する。カウントCはC=1=C2になる。よって、C2=1、N2=1である。
(8)以下、同様の動作が続き、図16の表が得られる。
 以下では、図17の3周期の場合を例に、図14を説明する。図17に関する判断部12、周期データ取得部13及び決定部14の動作は、図16の2周期と同じであるので、図17の例は簡単に説明する。
 周期<1>、周期<2>は図16と同じである。
 周期<3>
(1)ステップS405において、判断部12によって変数iにi+1=kが代入される。
(2)ステップS402において、判断部12は、スレーブ#kの現在のカウントCが0か判断する。周期<3>の待機周期数N1、カウントC1は、C1=1及びN1=1である。よって判断部12はC=1と判断する。処理はステップS403に進む。
(3)ステップS403において、判断部12は、カウントCを1減算する。
(4)処理がステップS403に進む場合は、周期データはスレーブ#kから受信されないので、待機周期数Nに変化はない。よって、N2=1、C2=0である。
 周期<4>
(1)ステップS405において、判断部12によって変数iにi+1=kが代入される。
(2)ステップS402において、判断部12は、スレーブ#kの現在のカウントCが0か判断する。周期<4>の待機周期数N1、カウントC1は、C1=0及びN1=1である。よって判断部12はC=0と判断する。処理はステップS404に進む。
(3)ステップS404において、判断部12は、トークン200にスレーブ#kのアドレスを設定する。
(4)ステップS409において、周期データ取得部13は、周期データD2をスレーブ#kから受信する。処理はステップS4091からステップS4092に進む。
(5)ステップS4092において、判断部12は、受信した周期データD2と、格納データDsとが同一か判断する。ここでは、格納データDs=周期データD1である。よって、処理はステップS4093に進む。
(6)ステップS4093において、決定部14は、Nを1減算する。Nの下限はゼロに設定されている。ステップS4093では、N=N1-1=1-1=0=N2である。
(7)ステップS4095において、決定部14はカウントCに待機周期数Nを代入する。カウントCはC=0=C2になる。よって、C2=0、N2=0である。
 周期<5>
(1)ステップS405において、判断部12により変数iにi+1=kが代入される。
(2)ステップS402において、判断部12は、スレーブ#kの現在のカウントCが0か判断する。周期<5>の待機周期数N1、カウントC1は、C1=0及びN1=0である。よって判断部12はC=0と判断する。処理はステップS404に進む。
(3)ステップS404において、判断部12は、トークン200にスレーブ#kのアドレスを設定する。
(4)ステップS409において、周期データ取得部13は、周期データD2をスレーブ#kから受信する。処理はステップS4091からステップS4092に進む。
(5)ステップS4092において、判断部12は、受信した周期データD2と、格納データDsとが同一か判断する。格納データDs=周期データD2である。よって、処理はステップS4094に進む。
(6)ステップS4094において、決定部14は、Nを1加算する。ステップS4094では、N=0+1=1である。
(7)ステップS4095において、決定部14はカウントCに待機周期数Nを代入する。カウントCはC=1=C2になる。よって、C2=1、N2=1である。
 周期<6>
(1)ステップS405において、判断部12によって変数iにi+1=kが代入される。
(2)ステップS402において、判断部12は、スレーブ#kの現在のカウントCが0か判断する。周期<6>の待機周期数N1、カウントC1は、C1=1及びN1=1である。よって、判断部12はC=1と判断する。処理はステップS403に進む。
(3)ステップS403において、判断部12は、カウントCを1減算する。
(4)処理がステップS403に進む場合は、周期データはスレーブ#kから受信されないので、待機周期数Nに変化はない。よって、N2=1、C2=0である。
(5)以下、同様の動作が続き、図17の表が得られる。
 以下では、図18の6周期の場合を例に、図14を説明する。図17との違いに着目して、図18を簡単に説明する。
 周期<1>から周期<3>は図17と同じである。
 周期<4>
(1)ステップS405において、判断部12によって変数iにi+1=kが代入される。
(2)ステップS402において、判断部12は、スレーブ#kの現在のカウントCが0か判断する。周期<4>の待機周期数N1、カウントC1は、C1=0及びN1=1である。よって、判断部12はC=0と判断する。処理はステップS404に進む。
(3)ステップS404において、判断部12は、トークン200にスレーブ#kのアドレスを設定する。
(4)ステップS409において、周期データ取得部13は、周期データD1をスレーブ#kから受信する。処理はステップS4091からステップS4092に進む。
(5)ステップS4092において、判断部12は、受信した周期データD1と、格納データDsとが同一か判断する。ここでは、格納データDs=周期データD1である。よって、処理はステップS4094に進む
(6)ステップS4094において、決定部14は、Nを1増加する。ステップS4094では、N=N1+1=1+1=2=N2である。
(7)ステップS4095において、決定部14はカウントCに待機周期数Nを代入する。よって、C2=2、N2=2である。
 周期<5>
(1)ステップS405において、判断部12によって変数iにi+1=kが代入される。
(2)ステップS402において、判断部12は、スレーブ#kの現在のカウントCが0か判断する。周期<5>の待機周期数N1、カウントC1は、C1=2及びN1=2である。よって、判断部12はC=2と判断する。処理はステップS403に進む。
(3)ステップS403において、判断部12は、カウントCを1減算する。
(4)処理がステップS403に進む場合は、周期データはスレーブ#kから受信されないので、待機周期数Nに変化はない。よって、N2=2、C2=1である。
 周期<6>
(1)ステップS405において、判断部12によって変数iにi+1=kが代入される。
(2)ステップS402において、判断部12は、スレーブ#kの現在のカウントCが0か判断する。周期<6>の待機周期数N1、カウントC1は、C1=1及びN1=2である。よって、判断部12はC=1と判断する。処理はステップS403に進む。
(3)ステップS403において、判断部12は、カウントCを1減算する。
(4)処理がステップS403に進む場合は、周期データはスレーブ#kから受信されないので、待機周期数Nに変化はない。よって、N2=2、C2=0である。
(5)以下、同様の動作が続き、図18の表が得られる。
***実施の形態2の効果***
 実施の形態2によれば、トークンパッシングを使用する通信システムにおいても、実施の形態1と同じ効果を得ることができる。
実施の形態3.
 実施の形態3は、通信システム、マスタ及びスレーブの構成は、実施の形態1と同じである。
 実施の形態2では、トークンパッシング方式において、周期データ受信工程の時間T1の残り時間で非周期データを送信させるという方法で周期を一定に保った。実施の形態2の方式は、削減された時間を、非周期データの受信に充てる方法である。実施の形態3では、削減されたデータ量分で非周期データを受信する方法を説明する。
 図20は、マスタ10とスレーブとの処理を示すフローチャートである。図20を参照して実施の形態3を説明する。実施の形態3では、周期データ受信工程の開始時間Tsのみ計測され、周期データ受信工程は図5の時間T0ごとに繰り返される。図20では、図14と同じステップは同じステップ番号を付している。図20は、図14に対して、ステップS41a、ステップS403a、ステップS415a、ステップS415bが異なる。また、図20は、ステップS404、ステップS414,ステップS415が存在しない。これら以外は図20は図14と同じである。
 ステップS401a,S401は進行部11によって実行される。ステップS402,S403、S403a、S404、S405、S406は、判断部12によって実行される。ステップS408,S409は周期データ取得部13によって実行される。ステップS415a,S415bは非周期データ取得部15によって実行される。ステップS4091は周期データ取得部13によって実行される。ステップS4092は判断部12によって実行される。ステップS4093、S4094、S4095は決定部14によって実行される。
 図20のフローチャートによれば、実施の形態3の場合も、実施の形態2と同様に、データ更新周期が2周期の図16、データ更新周期が3周期の図17及びデータ更新周期が6周期の図18が得られる。
 実施の形態3では変数Uを使用する。
 変数Uは、受信するべき非周期データの容量の変数である。ステップS401aに示すように、進行部11によって変数Uは毎周期0に設定される。各スレーブは、周期データのデータ容量が決められている。マスタ10のメモリ82に格納されているスレーブ情報820には、各スレーブの送信する周期データのデータ容量823が設定されている。実施の形態3の周期データ受信工程では、ステップS403aにおいて、周期データが受信されないスレーブが有る場合、周期データが受信されないスレーブのデータ容量がデータ容量823から読み出され変数Uに積算される。例えば、スレーブ#1、#2から周期データを受信しない場合に、スレーブ#1、#2の周期データのデータ容量がU(1)、U(2)であるとする。その場合、変数Uは、U=U(1)+U(2)となる。
 非周期データ取得部15は、周期データ受信工程で周期データ要求が送信されない複数のスレーブのそれぞれの周期データのデータ容量の合計の以内で、非周期データを取得する。上記の例では、ステップS415aにおいて、非周期データ取得部15は、スレーブ#nから非周期データを、U=U(1)+U(2)のデータ容量だけ受信する。このように、マスタ10は、その周期データ受信工程で受信されないスレーブに関するデータ容量を変数Uに加算していき(ステップS403a)、変数Uの値のデータ容量の非周期データを受信する(ステップS415a)。各スレーブの送信する周期データのデータ量はスレーブごとに一定である。スレーブ情報820のデータ容量823を用いて、判断部12は、ステップS403aにおいて、データ送信をしないスレーブのデータ量を変数Uに加算する。ステップS415bにおいて、非周期データ取得部15は、データ容量Uの非周期データの受信を確認できた場合、スレーブ#nに送信の停止要求を送信し、周期データ受信工程の処理は終了となる。
***実施の形態3の効果***
 実施の形態3では、データ更新頻度の低いスレーブによる周期データのデータ送信頻度を下げることで周期データの受信容量を削減し、削減された周期データのデータ容量を非周期データの受信にあてるので、通信データの容量の点で通信効率を向上できる。
 以上、本発明の実施の形態1から実施の形態3について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
 10 マスタ、11 進行部、12 判断部、13 周期データ取得部、14 決定部、15 非周期データ取得部、81 プロセッサ、82 メモリ、83 補助記憶装置、84 通信コントローラ、85 タイマ、86 信号線、20 スレーブ、20A スレーブ、30A 外部装置、40 通信回線、100 通信システム、200 トークン、201 フレームヘッダ、202 アドレス、203 フレームフッタ、820 スレーブ情報、821 スレーブ番号、822 アドレス、823 データ容量、824 待機周期数、825 待機周期数更新フラグ、826 カウント、827 格納データ、909 電子回路。

Claims (12)

  1.  周期データ要求を受信した場合に、周期的に更新される周期データを送信する複数のスレーブ装置と、
     前記複数のスレーブ装置の各スレーブ装置から前記周期データを受信しようとする周期データ受信工程が開始した場合に、前記スレーブ装置に前記周期データ要求を送信するマスタ装置と
    を備える通信システムにおいて、
     前記マスタ装置は、
     最新の前記周期データ受信工程で前記スレーブ装置から送信された前記周期データが、同じ前記スレーブ装置から前回に送信された前記周期データと同一か判断する判断部と、
     前記判断部によって前記周期データが判断された前記スレーブ装置について、前記判断部による判断結果に基づいて、最新の前記周期データ受信工程から前記周期データ要求を送信するべき次の前記周期データ受信工程までの前記周期データ要求の送信間隔を決定する決定部と、
     前記複数のスレーブ装置のうち周期的には更新されない非周期データを送信可能な前記スレーブ装置から、前記非周期データを、前記送信間隔に基づいて前記周期データ受信工程で取得する非周期データ取得部と
    を備える通信システム。
  2.  前記非周期データ取得部は、
     少なくとも一つの前記スレーブ装置に前記周期データ要求の送信がされない前記周期データ受信工程において前記非周期データを取得可能な期間であり、前記送信間隔から定まる期間である取得期間で前記非周期データを取得する請求項1に記載の通信システム。
  3.  前記周期データ受信工程では、
     受信するべき制限時間が決められており
     前記非周期データ取得部は、
     前記制限時間の以内で、前記非周期データを取得する請求項1または請求項2に記載の通信システム。
  4.  各スレーブ装置は、
     前記周期データのデータ容量が決められており、
     前記非周期データ取得部は、
     前記周期データ受信工程で前記周期データ要求が送信されない複数の前記スレーブ装置のそれぞれの前記周期データのデータ容量の合計の以内で、前記非周期データを取得する請求項1に記載の通信システム。
  5.  前記決定部は、
     前回に前記周期データが送信された前記周期データ受信工程と最新の前記周期データ受信工程との間の前記周期データ要求の前記送信間隔と、前記判断部による前記判断結果とを用いて、最新の前記周期データ受信工程から前記周期データ要求を送信するべき次の前記周期データ受信工程までの前記周期データ要求の前記送信間隔を決定する請求項1から請求項4のいずれか一項に記載の通信システム。
  6.  周期データ要求を受信した場合に、周期的に更新される周期データを送信する複数のスレーブ装置に、前記複数のスレーブ装置の各スレーブ装置から前記周期データを受信しようとする周期データ受信工程が開始した場合に、前記スレーブ装置に前記周期データ要求を送信するマスタ装置において、
     最新の前記周期データ受信工程で前記スレーブ装置から送信された前記周期データが、前回に同じ前記スレーブ装置から送信された前記周期データと同一か判断する判断部と、
     前記判断部によって前記周期データが判断された前記スレーブ装置について、前記判断部による判断結果に基づいて、最新の前記周期データ受信工程から前記周期データ要求を送信するべき次の前記周期データ受信工程までの前記周期データ要求の送信間隔を決定する決定部と、
     前記複数のスレーブ装置のうち周期的には更新されない非周期データを送信可能な前記スレーブ装置から、前記非周期データを、前記送信間隔に基づいて前記周期データ受信工程で取得する非周期データ取得部と
    を備えるマスタ装置。
  7.  前記非周期データ取得部は、
     少なくとも一つの前記スレーブ装置に前記周期データ要求の送信がされない前記周期データ受信工程において前記非周期データを取得可能な期間であり、前記送信間隔から定まる期間である取得期間で前記非周期データを取得する請求項6に記載のマスタ装置。
  8.  前記周期データ受信工程では、
     受信するべき制限時間が決められており
     前記非周期データ取得部は、
     前記制限時間の以内で、前記非周期データを取得する請求項6または請求項7に記載のマスタ装置。
  9.  各スレーブ装置は、
     前記周期データのデータ容量が決められており、
     前記非周期データ取得部は、
     前記周期データ受信工程で前記周期データ要求が送信されない複数の前記スレーブ装置のそれぞれの前記周期データのデータ容量の合計の以内で、前記非周期データを取得する請求項6に記載のマスタ装置。
  10.  前記決定部は、
     前回に前記周期データが送信された前記周期データ受信工程と最新の前記周期データ受信工程との間の前記周期データ要求の前記送信間隔と、前記判断部による前記判断結果とを用いて、最新の前記周期データ受信工程から前記周期データ要求を送信するべき次の前記周期データ受信工程までの前記周期データ要求の前記送信間隔を決定する請求項6から請求項9のいずれか一項に記載のマスタ装置。
  11.  周期データ要求を受信した場合に、周期的に更新される周期データを送信する複数のスレーブ装置に、前記複数のスレーブ装置の各スレーブ装置から前記周期データを受信しようとする周期データ受信工程が開始した場合に、前記スレーブ装置に前記周期データ要求を送信するコンピュータであるマスタ装置に、
     最新の前記周期データ受信工程で前記スレーブ装置から送信された前記周期データが、前回に同じ前記スレーブ装置から送信された前記周期データと同一か判断する判断処理と、
     前記判断処理によって前記周期データが判断された前記スレーブ装置について、前記判断処理による判断結果に基づいて、最新の前記周期データ受信工程から前記周期データ要求を送信するべき次の前記周期データ受信工程までの前記周期データ要求の送信間隔を決定する決定処理と、
     前記複数のスレーブ装置のうち周期的には更新されない非周期データを送信可能な前記スレーブ装置から、前記非周期データを、前記送信間隔に基づいて前記周期データ受信工程で取得する取得処理とを実行させる通信プログラム。
  12.  周期データ要求を受信した場合に、周期的に更新される周期データを送信する複数のスレーブ装置に、前記複数のスレーブ装置の各スレーブ装置から前記周期データを受信しようとする周期データ受信工程が開始した場合に、前記スレーブ装置に前記周期データ要求を送信するコンピュータであるマスタ装置が、
     最新の前記周期データ受信工程で前記スレーブ装置から送信された前記周期データが、前回に同じ前記スレーブ装置から送信された前記周期データと同一か判断し、
     前記周期データが同一か判断された前記スレーブ装置について、同一かどうかの判断結果に基づいて、最新の前記周期データ受信工程から前記周期データ要求を送信するべき次の前記周期データ受信工程までの前記周期データ要求の送信間隔を決定し、
     前記複数のスレーブ装置のうち周期的には更新されない非周期データを送信可能な前記スレーブ装置から、前記非周期データを、前記送信間隔に基づいて前記周期データ受信工程で取得する
    通信方法。
PCT/JP2017/036509 2017-10-06 2017-10-06 通信システム、マスタ装置、通信プログラム及び通信方法 WO2019069460A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2017/036509 WO2019069460A1 (ja) 2017-10-06 2017-10-06 通信システム、マスタ装置、通信プログラム及び通信方法
TW106145699A TWI655876B (zh) 2017-10-06 2017-12-26 Communication system, main control device, communication program product, and communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/036509 WO2019069460A1 (ja) 2017-10-06 2017-10-06 通信システム、マスタ装置、通信プログラム及び通信方法

Publications (1)

Publication Number Publication Date
WO2019069460A1 true WO2019069460A1 (ja) 2019-04-11

Family

ID=65995154

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/036509 WO2019069460A1 (ja) 2017-10-06 2017-10-06 通信システム、マスタ装置、通信プログラム及び通信方法

Country Status (2)

Country Link
TW (1) TWI655876B (ja)
WO (1) WO2019069460A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09219715A (ja) * 1996-02-09 1997-08-19 Omron Corp 通信システム
JP2004289754A (ja) * 2003-03-25 2004-10-14 Matsushita Electric Ind Co Ltd シリアル通信プロトコルおよびデータフレーム構成

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075945B (zh) * 2006-05-19 2011-06-08 中国科学院沈阳自动化研究所 实时以太网确定性通信方法
EP3264685B1 (en) * 2008-12-12 2019-03-06 Mitsubishi Electric Corporation Data transmitting and receiving method, data transmitting and receiving system, master device, and slave device
US8260872B1 (en) * 2011-03-29 2012-09-04 Data Flow Systems, Inc. Modbus simulation system and associated transfer methods

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09219715A (ja) * 1996-02-09 1997-08-19 Omron Corp 通信システム
JP2004289754A (ja) * 2003-03-25 2004-10-14 Matsushita Electric Ind Co Ltd シリアル通信プロトコルおよびデータフレーム構成

Also Published As

Publication number Publication date
TW201916732A (zh) 2019-04-16
TWI655876B (zh) 2019-04-01

Similar Documents

Publication Publication Date Title
JP4485574B2 (ja) アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法
JP6174305B2 (ja) データ送信装置、通信制御方法、及び通信制御プログラム
JP7142741B2 (ja) データ転送装置およびデータ転送方法
EP3575979B1 (en) Query priority and operation-aware communication buffer management
JP2019113917A (ja) データ処理装置、及びデータ処理装置の制御方法
JP7461895B2 (ja) Gpu主導の通信のためのネットワークパケットテンプレーティング
KR100395383B1 (ko) 데이터 전송 장치
JP7030673B2 (ja) 送信装置、通信装置、通信システム、送信方法、およびプログラム
JP4855864B2 (ja) ダイレクトメモリアクセスコントローラ
WO2019069460A1 (ja) 通信システム、マスタ装置、通信プログラム及び通信方法
KR20170072645A (ko) 프로세서 및 프로세서에서 데이터를 처리하는 방법
US10198301B2 (en) Semiconductor device
CN116150082A (zh) 访问方法、装置、芯片、电子设备和存储介质
CN104731980A (zh) 一种针对缓存页面的页面管理方法及装置
JP2010211864A (ja) メモリ制御装置
JP2007164629A (ja) 信号処理装置、撮像装置およびデータ転送方法
WO2020026315A1 (ja) 割り込み制御装置、割り込み制御方法および割り込み制御プログラム
JPWO2016039198A1 (ja) アクセス制御方法、バスシステム、および半導体装置
JP2016071457A (ja) 情報処理装置およびその制御方法、並びにプログラム
JP6416488B2 (ja) 半導体装置
JP6180397B2 (ja) メモリーアクセス装置、メモリーアクセス制御方法
CN114503089B (zh) 数据传送装置和数据传送方法
CN110929102B (zh) 一种数据处理方法、装置及电子设备
TW201906371A (zh) 管理裝置、通訊系統、管理方法以及管理程式產品
US11347667B2 (en) Bus controller and related methods

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17927993

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17927993

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP