Oberfläche
Die Oberfläche hat Zugriff auf NC-Schnittstellen und NC-Daten über sogenannte HMI-Objekte. Das Protokoll des Zugriffs wird über eine DLL gekapselt, welche eine Windows-Applikation den Schreib-/Lesezugriff auf HMI-Objekte anbietet. Für die Oberfläche können automatisch entsprechend der Konfigurationsliste Schnittstellenobjekte angelegt werden, wenn dies für die Variable entsprechend konfiguriert ist.
Für jede angegebene Variable werden dann zwei Objekte angelegt, je eines für den Schreib- und eines für den Lesezugriff. Die findet unabhängig von den Zugriffsrechten des NC-Kanals statt, d.h. selbst wenn der NC-Kanal nur lesenden Zugriff auf die Variable hat (z.B. access_rights = READ_ONLY), kann die Oberfläche auch schreibend zugreifen. Bei einem Feld wird eine Oberflächenobjekt für jedes Feldelement angelegt.
Falls gewünscht kann das Format der Namen der Oberflächenobjekte durch Angabe entsprechender Schablonen in der Liste beliebig angepasst werden (ab Version V254). Hierbei sind als Platzhalter %s für den Namen und bei einem Feld nachfolgend zusätzlich %d für den Index anzugeben.
Bezeichner | Bedeutung | Defaultwert |
name_rd_global_array | Lesen bei globalem Feld | cnc_ve_ %s _rd[ %d ] |
name_wr_global_array | Schreiben bei globalem Feld | cnc_ve_ %s _wr[ %d ] |
name_rd_channel_array | Lesen bei kanalspezifischem Feld | mc_ve_ %s _rd[ %d ] |
name_wr_channel_array | Schreiben bei kanalspezifischem Feld | mc_ve_ %s _wr[ %d ] |
name_rd_global | Lesen bei globalen Variablen | cnc_ve_ %s _rd |
name_rd_global | Schreiben bei globalen Variablen | cnc_ve_ %s _wr |
name_rd_channel | Lesen bei kanalspezifischen | mc_ve_ %s _rd |
name_wr_channel | Schreiben bei kanalspezifischen | mc_ve_ %s _wr |
Beispiel: Vergabe der Namen für die Oberflächenschnittstelle
# ***************************************
#
# ***************************************
#
name_rd_global_array cnc_test1_%s_rd[%d]
name_wr_global_array cnc_test1_%s_wr[%d]
name_rd_channel mc_test2_%s_rd
name_wr_channel mc_test2_%s_wr
...
var[0].name G_ARRAY5
var[0].index 0
var[0].type SGN32
var[0].scope GLOBAL
var[0].synchronisation FALSE
var[0].access_rights READ_WRITE
var[0].array_size 5
var[0].size 4 # 4 Byte pro Element
var[0].create_hmi_interface TRUE # HMI-Objekt wird angelegt
#
var[1].name L_BOOLEAN
var[1].index 1
var[1].type BOOLEAN
var[1].scope CHANNEL
var[1].synchronisation FALSE
var[1].access_rights READ_WRITE
var[1].array_size 1
var[1].size 1 # 4 Byte pro Element
var[1].create_hmi_interface TRUE # HMI-Objekt wird angelegt
Durch obigen Auszug aus der Konfigurationsliste werden implizit folgende HMI-Objekte angelegt:
cnc_test1_G_ARRAY5_rd[0]
cnc_test1_G_ARRAY5_wr[0]
cnc_test1_G_ARRAY5_rd[1]
cnc_test1_G_ARRAY5_wr[1]
cnc_test1_G_ARRAY5_rd[2]
cnc_test1_G_ARRAY5_wr[2]
cnc_test1_G_ARRAY5_rd[3]
cnc_test1_G_ARRAY5_wr[3]
cnc_test1_G_ARRAY5_rd[4]
cnc_test1_G_ARRAY5_wr[4]
mc_test2_L_BOOLEAN_wr
mc_test2_L_BOOLEAN_rd