Realtime-Linux / Windows-Simulation

In der Realtime-Konfiguration der CNC wird die Zuordnung der Threads auf die CPU-Kerne festgelegt. Die Parametrierung erfolgt in der rt_conf.lis.

Über P-RTCF-00015 kann dem Thread ein CPU-Kern zugewiesen werden. Ist dieser Wert unzulässig wird die Warnung ID 1000181 ausgegeben und das Betriebssystem übernimmt die Zuweisung.

Die Zuordnung der einzelnen Threads zu Tasks der CNC erfolgt über die Kontexteinträge. Der Wert des Kontexteintrag (P-RTCF-00017) des Threads und der Wert des Kontexteintrags in der Kanalliste für die entsprechende Task müssen übereinstimmen.

Beispiel

example

Parametrierbeispiel: rt_conf.lis

# ****************************************

#

#  RT-Konfigurierung

#

# ****************************************

#  LINUX      [1; 99]   1   highest

#  RTX        [0; 127]  127 highest

#  VXWORKS    [0; 255]  0   highest

#  WindowsCE  [0; 255]  0   highest, 9 CANopen, 10-15 CNC, 16-64 PLC

#

# trace bit : 0 - off, 1 - DTR on COM1, 2 - RTS on COM1, 3 - DTR on COM2, 4 - RTS on COM2

#

#

interrupt_source                        1    # 1 == internal Timer, 2 == external IRQ, 3 == external Semaphore

cycle_time                           2000    # Zykluszeit in mikro s

time_slice                           1000

windows_time                            0    # 0 turned off

schedule                                1    # Standard

#

thread[0].name                             GEO1

thread[0].cpu                              1   # CPU-Kern 1

thread[0].context_info                     0

thread[0].cycle                            2000

thread[0].priority                         31 # HIGHEST

thread[0].error_on_overflow                1

thread[0].function[0].name                 task_int

thread[0].function[0].calls_per_cycle      1

thread[0].function[0].trace_bit            1

#

thread[1].name                             BACKGROUND

thread[1].cpu                              2   # CPU-Kern 2

thread[1].context_info                     4

thread[1].cycle                            1000

thread[1].priority                         34 # NORMAL

thread[1].error_on_overflow                0

thread[1].function[0].name                 task_rnd

thread[1].function[0].calls_per_cycle      1

thread[1].function[0].trace_bit            3

#

thread[2].name                             MMI_DRIVER

thread[2].cpu                              2   # CPU-Kern 2

thread[2].context_info                     6

thread[2].cycle                            12000

thread[2].priority                         35

thread[2].error_on_overflow                0

thread[2].function[0].name                 task_mmi_driver

thread[2].function[0].calls_per_cycle      1

thread[2].function[0].trace_bit            0

#

thread[3].name                             COM

thread[3].cpu                              2   # CPU-Kern 2

thread[3].context_info                     5

thread[3].cycle                            4000

thread[3].priority                         35

thread[3].error_on_overflow                0

thread[3].function[0].name                 task_com

thread[3].function[0].calls_per_cycle      1

thread[3].function[0].trace_bit            4

#

thread[4].name                             GEO2

thread[4].cpu                              3   # CPU-Kern 3

thread[4].context_info                     1

thread[4].cycle                            2000

thread[4].priority                         31 # HIGHEST

thread[4].error_on_overflow                1

thread[4].function[0].name                 task_int

thread[4].function[0].calls_per_cycle      1

thread[4].function[0].trace_bit            1

#

# external_thread[0].semaphore_name     external_sps

# external_thread[0].cycle              10000

#

Ende

Die zugehörige Parametrierung für die entsprechenden Zuordnungen in den Kanälen ist wie folgt:

Kanalparameterliste 1 - GEO1, SDA und den COM

schedulde.context.geo                0

schedulde.context.com                5

schedulde.context.sda                4

Kanalparameterliste 2 – GEO2

schedulde.context.geo                1