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
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