Osciloskop
Popis funkce struktury Oscilloscope¶
Oscilloscope je sofistikovaný nástroj pro záznam až 32 kanálů - hodnot až 32 různých registrů v závislosti na čase.
V určitém časovém intervalu detekuje a ukládá do sdílené paměti TGM_Oscilloscope
hodnoty zvolených registrů.
S daty pak lze pracovat v jiných částech PLC nebo ve Windows aplikacích.
Sdílená paměť TGM_Oscilloscope
má zpravidla velikost 1 048 576 bytů.
Skutečnou velikost je nutno zjistit z hodnoty registru TGM_System.HEADER.Mem_Size_OSC
.
Paměť TGM_Oscilloscope
je společná pro data všech zaznamenávaných kanálů.
Při záznamu hodnot jednoho kanálu je jemu vyhrazena celá paměť, při záznamu dat více kanálů je paměť rovnoměrně rozdělena mezi jednotlivé kanály.
Rozložení zaznamenávaných dat v paměti TGM_Oscilloscope
a jejich offsety určuje TG Motion; tyto parametry uloží do příslušných registrů.
Poznámka
Rovnoměrnost rozdělení paměti TGM_Oscilloscope je vztažena k počtu bytů potřebných k záznamu hodnot jednotlivých registrů.
Např. při záznamu dvou registrů, jednoho typu Long Integer (4 byty) a druhého typu Double (8 bytů), rozdělí TG Motion sdílenou paměť TGM_Oscilloscope
v poměru 1:2, aby u obou kanálů mohl být zaznamenán stejný počet vzorků.
Upozornění
Se zvyšujícím se počtem zaznamenávaných kanálů klesá čas záznamu
Na úrovni TG Motion se načtení a záznam dat utilitou Oscilloscope do sdílené paměti TGM_Oscilloscope
provádí po vykonání Program_04.
Tím je zaručena časová synchronizace zaznamenaných hodnot.
Načtení a záznam však nemusí proběhnout každý Cycle_Time; počet Cycle_Time, během nichž dojde k jednomu záznamu, určuje registr Number_Periods
.
Poznámka
Na úrovni Windows nabízí Control Observer utilitu Oscilloscope, v níž lze zaznamenaná data zobrazit formou grafu, uložit do souboru, zpětně načíst, měnit parametry záznamu i zobrazování, případně provádět vlastní záznam.
Upozornění
Oscilloscope funguje jako jedna instance, která může být využívána z PLC i Control Observeru. Nelze ji však používat současně z PLC, Control Observeru, případně z jiných aplikací.
Poznámka
Podrobný popis utility Oscilloscope Control Observeru se nachází v kapitole Control Observer.
Registry Oscilloscope a jejich význam¶
Registry, kterými se utilita Oscilloscope řídí, nebo kam ukládá svá nastavení, se nacházejí ve sdílené paměti TGM_System
od offsetu 4736
.
Pro přehlednost je lze rozdělit do tří skupin:
- obecné registry – týkají se nastavení utility Oscilloscope jako celku
- registry kanálů – platí pouze pro konkrétní kanály
- pomocné registry – obsahují informace o záznamu
Obecné registry Oscilloscope¶
Obecné registry slouží k celkovému nastavení a ovládání utility Oscilloscope.
Parametr | Popis |
---|---|
Control | Slouží k ovládání struktury Oscilloscope. |
- 0: Neprobíhá záznam nebo slouží k zastavení záznamu. | |
- >0: Aktivace záznamu; spouští záznam nebo čekání na Trigger (podle registru Status). | |
Status | Zobrazuje stav struktury Oscilloscope. |
- 0: Neprobíhá záznam ani čekání na Trigger. | |
- 1: Probíhá záznam. | |
- 2: Čekání na Trigger. | |
Number_Periods | Počet servotiků na jeden vzorek. Určuje počet Cycle_Time, za něž se provede jeden záznam dat Oscilloscope. |
Number_Channels | Počet zaznamenávaných nebo zaznamenaných kanálů. |
Memory_Type_Trigger | Typ sdílené paměti, v níž se nachází triggerovací registr. |
- 0: TGM_System | |
- 1: TGM_Data | |
- 2: TGM_Cam_Profile | |
- 3: TGM_Oscilloscope | |
- 4: TGM_Servo | |
- 5: TGM_Dio | |
- 6: TGM_Interpolator | |
- 7: InterpolatorWriteMemory | |
- 8: InterpolatorReadMemory | |
- 9: TGM_ODS | |
- 10: TGM_CNCEX | |
- 11: TGM_GCODE | |
Offset_Trigger | Offset triggerovacího registru v paměti dané registrem Memory_Type_Trigger. |
Mode_Trigger | Mód triggerovacího algoritmu. |
- 0: Triggerování neaktivní. | |
- 1: Triggerování na náběžnou hranu. | |
- 2: Triggerování na sestupnou hranu. | |
Type_Trigger | Datový typ triggerovacího registru. |
Level_Trigger | Hodnota triggerovacího registru, při níž se spustí záznam. |
Poznámka
Triggerovacím registrem může být jakýkoli registr sdílených pamětí.
Upozornění
Přesto, že načtené hodnoty triggerovacího registru nemusejí být spojité, triggerovací algoritmus spojitost předpokládá.
Např. při Level_Trigger = 20
, Mode_Trigger = 1
a načtených po sobě jdoucích hodnotách triggerovacího registru 17 a 22 se předpokládá, že hodnoty 20 již bylo dosaženo a záznam Oscilloscope se spustí.
Princip fungování utility Oscilloscope¶
Je-li Mode_Trigger = 0, pak při nastavení registru Control > 0 spustí utilita Oscilloscope záznam dat. Záznam lze ukončit nastavením registru Control = 0. Je-li Mode_Trigger > 0, pak při nastavení registru Control > 0 aktivuje utilita Oscilloscope triggerovací algoritmus, který každý Cycle_Time testuje a vyhodnocuje hodnoty triggerovacího registru. Při splnění triggerovací podmínky se spustí záznam dat. Záznam Oscilloscope lze ukončit nastavením registru Control = 0.
Poznámka
Jestliže během záznamu Oscilloscope dojde k zaplnění vyhrazené paměti TGM_Oscilloscope, dojde automaticky k zastavení záznamu a registry Control a Status jsou nastaveny na hodnotu 0.
Poznámka
Kompletní výčet všech registrů Oscilloscope včetně popisu viz. Apendix.
Registry kanálů¶
Tyto registry určují parametry týkající se jednotlivých kanálů.
Jedná se o umístění zaznamenaných dat v paměti TGM_Oscilloscope
, určení zdroje dat (typ paměti a offset) a datový typ zaznamenávaného registru.
Každému kanálu náleží následující čtveřice registrů.
Paramet r | Popis |
---|---|
Offset | Offset zaznamenávaných dat kanálu v paměti TGM_Oscilloscope (přidělený systémem TG Motion). |
Memory_Type_Value | Typ sdílené paměti, v níž se nachází zaznamenávaný registr. |
- 0: TGM_System | |
- 1: TGM_Data | |
- 2: TGM_Cam_Profile | |
- 3: TGM_Oscilloscope | |
- 4: TGM_Servo | |
- 5: TGM_Dio | |
- 6: TGM_Interpolator | |
- 7: InterpolatorWriteMemory | |
- 8: InterpolatorReadMemory | |
- 9: TGM_ODS | |
- 10: TGM_CNCEX | |
- 11: TGM_GCODE | |
Offset_Value | Offset zaznamenávaného registru v paměti dané hodnotou Memory_Type_Value. |
Type_Value | Datový typ zaznamenávaného registru. |
- 0–3: Integer 32 bitů | |
- 4–7: Integer 64 bitů | |
- 8: Double (číslo v plovoucí řádové čárce o velikosti 64 bitů) | |
- 9: Float (číslo v plovoucí řádové čárce o velikosti 32 bitů) |
Pomocné registry¶
Pomocné registry informují o parametrech záznamu utility Oscilloscope.
- Number_Samples – počet vzorků k dispozici
- Actual_Samples – aktuální počet zaznamenaných vzorků
- Sample_Time - časový interval vzorkování
(Sample_Time = Cycle_Time × Number_Periods) [μs]
Poznámka
Registr Actual_Samples se při probíhajícím záznamu s každým vzorkem zvyšuje o 1.
Při zastavení vzorkování (např. při nastavení registru Control = 0
) označuje hodnota registru Actual_Samples
poslední provedený vzorek.
Přehled a popis registrů Oscilloscope¶
Obecné registry Oscilloscope
název | přístup | offset | popis | |
Control | RW | 4736 | slouží k ovládání struktury Oscilloscope 0 – neprobíhá záznam nebo zastavení záznamu >0 – aktivace záznamu Oscilloscope (spouští záznam nebo čekání na Trigger) |
|
Status | R | 4740 | stav struktury Oscilloscope 0 – neprobíhá záznam 1 – záznam 2 – čekání na trigger |
|
Number_Periods | RW | 4744 | počet servotiků na jeden vzorek. Určuje počet Cycle_Time, za něž se provede jeden záznam dat Oscilloscope |
|
Number_Channels | RW | 4748 | počet zaznamenávaných kanálů | |
Memory_Type_Trigger | RW | 4752 | typ sdílené paměti, v níž se nachází triggerovací registr | |
Offset_Trigger | RW | 4756 | offset triggerovacího registru v paměti dané registrem Memory_Type_Trigger | |
Mode_Trigger | RW | 4760 | mód triggerovacího algoritmu 0 – triggerování neaktivní 1 – náběžná hrana 2 – sestupná hrana |
|
Type_Trigger | RW | 4764 | datový typ proměné triggerovacího registru | |
Level_Trigger | RW | 4768 | hodnota triggerovacího registru, při níž se spustí záznam |
registry kanálu OSC -> CHANNEL_00
název | přístup | offset | popis | |
Offset | R | 4776 | offset zaznamenávaných dat kanálu v paměti TGM_Oscilloscope | |
Memory_Type_Value | RW | 4780 | typ sdílené paměti, v níž se nachází zaznamenávaný registr 0 – TGM_System 1 – TGM_Data 2 – TGM_Cam_Profile 3 – TGM_Oscilloscope 4 – TGM_Servo 5 – TGM_Dio 6 – TGM_Interpolator 7 – InterpolatorWriteMemory 8 – InterpolatorReadMemory 9 – TGM_ODS 10 – TGM_CNCEX 11 – TGM_GCODE |
|
Offset_Value | RW | 4784 | offset zaznamenávaného registru v paměti dané hodnotou Memory_Type_Value | |
Type_Value | RW | 4788 | datový typ zaznamenávaného registru 0–3 – integer 32 bitů 4–7 – integer 64 bitů 8 – double (číslo v plovoucí řádové čárce o velikosti 64 bitů) 9 – float (číslo v plovoucí řádové čárce o velikosti 32 bitů) |
registry ostatních kanálů OSC -> CHANNEL_01 - CHANNEL_31
název | offset | popis | ||
CHANNEL_01 | 4792 | registry náležející kanálu 01 | ||
CHANNEL_02 | 4808 | registry náležející kanálu 02 | ||
׀ | ׀ | ׀ | ||
CHANNEL_31 | 5272 | registry náležející kanálu 31 |
pomocné registry
název | přístup | offset | popis | |
Number_Samples | R | 5288 | počet vzorků k dispozici | |
Actual_Samples | R | 5292 | aktuální počet zaznamenaných vzorků | |
Sample_Time | R | 5296 | časový interval vzorkování (Sample_Time = Cycle_Time × Number_Periods) [μs] |