TG Motion verze 4 Modul Virtuální PLC návod k obsluze

Podobné dokumenty
TG Motion verze 4 Modul Virtuální PLC návod k obsluze

TG Motion verze 4 Skupina typu I/O návod k obsluze

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

TGMmini. začínáme. komplexní dodávky a zprovoznění servopohonů dodávky řídicích systémů

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV

ČÁST 1. Základy 32bitového programování ve Windows

TG Motion verze 4 Hardware návod k obsluze

TG Motion verze 4 Hardware návod k obsluze

Management procesu I Mgr. Josef Horálek

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody

Windows a real-time. Windows Embedded

8 Třídy, objekty, metody, předávání argumentů metod

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

VISUAL BASIC. Přehled témat

Programování ve Windows Dynamické knihovny. Andrea Číková Martin Osovský

NÁVOD K OBSLUZE konfigurační SW CS-484

Principy operačních systémů. Lekce 1: Úvod

Firmware řídící jednotky stejnosměrného generátoru

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

26. PERIFERIE PŘIPOJENÉ NA ETHERCAT

Zápis programu v jazyce C#

Úvodem... 9 Kapitola 1 Karetních

K8055D.DLL v Technická příručka. Úvod. Obecné. Konvence volání. Nastavení adresy karty

3. Počítačové systémy

IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí

Profilová část maturitní zkoušky 2017/2018

SEMESTRÁLNÍ PROJEKT Y38PRO

Funkce pokročilé možnosti. Úvod do programování 2 Tomáš Kühr

Metody připojování periferií

TG Motion verze 4 Control Observer II návod k obsluze

1 Webový server, instalace PHP a MySQL 13

Řada programovacích jazyků nabízí prostředky pro řešení meziprocesové komunikace jako je synchronizace a řízení přístupu do kritické sekce.

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Knihovna DataBoxLib TXV první vydání prosinec 2010 změny vyhrazeny

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

Obsah. Předm luva 3. Obsah \ 6

Přidělování CPU Mgr. Josef Horálek

Činnost počítače po zapnutí

Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina

Software pro vzdálenou laboratoř

Cvičení č. 2. Komunikace mezi procesy Program Hodiny. 4 body

Software pro grafické terminály TERM10 a TERM03

Mělká a hluboká kopie

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Instalace a konfigurace web serveru. WA1 Martin Klíma

Struktura programu v době běhu

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

IPA - Lab.1 Úvod do programování v ASM

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Profilová část maturitní zkoušky 2013/2014

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Stavba operačního systému

Comfort panely Siemens s.r.o All Rights Reserved. Comfort panely

PROGRAMOVÁNÍ V C++ CVIČENÍ

1 Uživatelská dokumentace

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

VYUŽITÍ PYTHONU PRO REALTIMOVÉ ŘÍZENÍ PERIFERIÍ

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

POČÍTAČOVÉ ŘÍZENÍ TECHNOLOGICKÝCH PROCESŮ

Řídící systémy hydraulických procesů. Cíl: seznámení s možnostmi řízení, regulace a vizualizace procesu.

Load Balancer. RNDr. Václav Petříček. Lukáš Hlůže Václav Nidrle Přemysl Volf Stanislav Živný

přetížení operátorů (o)

1. Programování proti rozhraní

Téma 7: Konfigurace počítačů se systémem Windows 7 III. Téma 7: Konfigurace počítačů se systémem Windows 7 III

Knihovna ServoLib Řízení servopohonu bez zpětné vazby. TXV první vydání březen 2009 změny vyhrazeny

Deska sběru chyb a událostí

POČÍTAČOVÉ ŘÍZENÍ TECHNOLOGICKÝCH PROCESŮ

A4300BDL. Ref: JC

Práce se soubory. Základy programování 2 Tomáš Kühr

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Průvodce programováním AMiNi-E jazykem STL Dipl. Ing. Pavel Votrubec

TG Drives Modul CNC návod k obsluze

09. Memory management. ZOS 2006, L.Pešička

Simluátor Trilobota. (projekt do předmětu ROB)

Controlweb. Úvod. Specifikace systému

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Více o konstruktorech a destruktorech

Procesy a vlákna (Processes and Threads)

Uživatelská příručka

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

TP /b P - POPIS ARCHIVACE TYP Měřič INMAT 57 a INMAT 57D

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Správa paměti. doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /

5. STRUKTURA PLC PROGRAMU

Práce s vysokorychlostní sběrnicí. SPEED-Bus digitální signály

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

EC Motor. IO Modul EC200. EC200 Int. EC200 Ext. Verze 1.20, revize PMControl s.r.o.

Generické programování

setup() { I = 0; } loop() { I = I + 1; }

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Transkript:

TG Motion verze 4 Modul Virtuální PLC návod k obsluze -1-

Obsah 1. Virtuální PLC...3 1.1 Popis Virtuálního PLC...3 1.2 Tvorba PLC...3 1.3 Vyžadovaný algoritmus PLC...3 Načtení vstupů...3 Zpracování hodnot a výpočty...3 Nastavení výstupů...3 1.4 Komunikace s PLC...4 2. Funkce PLC...5 2.1 Obecný popis funkcí...5 2.2 Struktura PLC_DATA...5 Definice diagnostických funkcí...5 Ukazatele na diagnostické funkce...6 Vlastní struktura...6 2.3 Funkce podle priority...6 Program_Ini...6 Program_01...7 Program_02...7 Program_03...8 Program_04...8 Program_05...8 2.4 Časová souslednost volání funkcí...9 Cycle_Time = 250 μs...9 Cycle_Time = 500 μs...11 Cycle_Time = 1000 μs...13 3. Nástroje pro ladění PLC...15 3.1 Control Observer...15 Součásti Control Observeru...15 3.2 Výpisy...15 3.3 Oscilloscope...15 3.4 Aplikace Windows...16-2-

1. Virtuální PLC 1.1 Popis Virtuálního PLC Modul Virtuální PLC vykonává uživatelem napsaný PLC program. Ten provádí výpočty, zabezpečuje ovládání servopohonů, načítání a nastavování hodnot vstupů a výstupů a stará se o komunikaci s dalšími periferiemi pouze prostřednictvím sdílené paměti. Virtuální PLC je z TG Motion periodicky volán v intervalu nastaveném v Cycle_Time. Velikost Cycle_Time je definována v souboru TGMotion4xx.ini. Výhodou virtuálního PLC je jeho rychlost, protože běží přímo ve strojovém kódu CPU. Skupiny Servo a I/O unifikují ovládací rozhraní pro různé typy servopohonů a I/O jednotek. Stejný PLC kód lze aplikovat na různé servopohony nebo I/O jednotky. Operativně lze také servopohony nebo I/O jednotky měnit, aniž by se musel PLC kód přepisovat. 1.2 Tvorba PLC Program PLC je možno vytvářet v obecném vývojovém prostředí, např. Visual Studio, Delphi. Programovací jazyk může být C, C++ a Pascal. Ve vývojovém prostředí je třeba vytvořit soubor *.tgm, který musí zveřejnit právě šest funkcí s názvy: Program_01, Program_02, Program_03, Program_04, Program_05 a Program_Ini. Uvedené názvy jsou povinné včetně velikosti písmen. Programový modul *.tgm nesmí být propojen s jakýmikoli externími moduly, veškerá programová funkčnost (funkce, podprogramy,...) musí být vytvořena programátorem přímo v modulu. Nesmějí se volat jakékoli funkce API Windows, je zakázáno dynamicky alokovat paměť (funkce malloc apod.). Všechny dále uvedené příklady zdojových kódů jsou uváděny pro programovací jazyk C++. 1.3 Vyžadovaný algoritmus PLC Obecný algoritmus PLC vyžaduje následující postup vykonávání, a to přesně v uvedeném pořadí: Načtení vstupů V první fázi je nutno načíst hodnoty registrů všech požadovaných vstupů. A to jak polohy a stavy servopohonů, tak i hodnoty digitálních a analogových vstupů. (viz. struktura Servo a struktura I/O) Zpracování hodnot a výpočty Dalším krokem je zpracování načtených hodnot a výpočty hodnot nových (žádané polohy servopohonů a hodnoty digitálních a analogových výstupů) Nastavení výstupů Posledním krokem je zaslání žádaných poloh servopohonům a nastavení hodnot digitálních a analogových výstupů prostřednictvím zapsání hodnot do příslušných registrů. -3-

1.4 Komunikace s PLC Ostatní komponenty systému TG Motion a uživatelské aplikace běžící pod Windows mohou komunikovat s PLC pomocí sdílené paměti TGM_Data o velikosti 524288 byte. TG Motion do ní nijak nezasahuje a její obsah nijak nepřepisuje. Struktura této paměti a její využití je plně v režii programátora PLC. Paměť může obsahovat uživatelské registry, data vaček, Nejčastěji je využívána aplikacemi pro vizualizaci běžícími pod Windows. -4-

2. Funkce PLC 2.1 Obecný popis funkcí Programovací modul virtuálního PLC má k dispozici právě 6 funkcí. Ty se liší prioritou provádění a požadavkem na své úplné provedení během jednoho Cycle_Time. Pro správný a bezchybný chod virtuálního PLC je nutné, aby požadovaný kód byl umístěn v příslušné funkci (viz. dále) Program_Ini funkce volaná pouze jednou při spuštění PLC Program_01( ) nejnižší priorita, volitelná perioda volání Program_02( ) nižší priorita, volitelná perioda volání Program_03( ) vyšší priorita, volitelná perioda volání Program_04( ) nejvyšší priorita, volá se každý Cycle_Time Program_05( ) nejvyšší priorita, volá se synchronně s výpočtem poloh Interpolátoru (vícekrát během jednoho Cycle_Time) Všechny funkce musejí být implementovány, některé nemusejí obsahovat výkonný kód. Vždy je nutno zabezpečit návratovou hodnotu funkce. Viz. příklad kódu Program_02 (str. 6) 2.2 Struktura PLC_DATA Struktura slouží pro komunikaci mezi TG Motion a PLC. TG Motion vytvoří šest instancí struktury PLC_DATA. Každá z šesti funkcí (Program_01, _02,... _05, _Ini) má právě jeden parametr, ukazatel na strukturu PLC_DATA. Při volání funkce jí TG Motion předá ukazatel na jí náležející instanci struktury. Struktura PLC_DATA také obsahuje ukazatele na sdílené paměti a ukazatele na vnitřní diagnostické funkce TG Motion. Definice diagnostických funkcí #ifdef cplusplus extern "C" { #endif typedef int _cdecl RTWPRINTF_STRING(LPCWSTR strtext); typedef int _cdecl RTWPRINTF_LONG(LPCWSTR strformat, long lval); výpis řetězce do konzole výpis hodnoty proměnné lval do konzole typedef int cdecl SWPRINTF(wchar_t *buffer, size_t sizeofbuffer, const wchar_t *strformat,...); zápis formátovaného textu do řetězce buffer typedef void cdecl SLEEPFT(PLARGE_INTEGER Pause); čekání typedef BOOL cdecl CAN_TRANSMIT(ULONG Number, ULONG Id, ULONG Dlc, PUCHAR Tx_Data ); rezervováno typedef BOOL cdecl CAN_TRANSMITREMOTE(ULONG Number, ULONG Id, ULONG Dlc, PUCHAR Tx_Data); rezervováno typedef int cdecl RTWPRINTF_EX(int severity, const wchar_t *strformat,...); výpis formátovaného textu do konzole #ifdef cplusplus }; #endif -5-

Ukazatele na diagnostické funkce typedef struct _PLC_IMPORT_FUNCTIONS { RTWPRINTF_STRING *prtwprintf_string; RTWPRINTF_LONG *prtwprintf_long; SWPRINTF *pswprintf; SLEEPFT *psleepft; CAN_TRANSMIT *pcan_transmit; CAN_TRANSMITREMOTE *pcan_transmitremote; RTWPRINTF_EX *prtwprintf_ex; } PLC_IMPORT_FUNCTIONS; Vlastní struktura typedef struct _PLC_DATA { size_t structsize; void *PSystem_Memory; void *PData_Memory; void *POsc_Memory; void *PCam_Memory; void *PServo_Memory; void *PDio_Memory; void *PInterpolator_Memory; void *Pointer_interpolator_params; void *Pointer_interpolator_get_position; void *PCNCEx; void *PGCode; void *PReserve3_Memory; void *PReserve4_Memory; void *PReserve5_Memory; void *PReciveDataCan1; void *PReciveDataCan2; PLC_IMPORT_FUNCTIONS functions; } PLC_DATA, *PPLC_DATA; velikost struktury v rezervováno rezervováno rezervováno rezervováno rezervováno bytech paměť TGM_System paměť TGM_Data paměť TGM_Oscilloscope paměť TGM_Cam_Profile paměť TGM_Servo paměť TGM_Dio paměť TGM_Interpolator paměť TGM_InterpolatorWriteMemory paměť TGM_InterpolatorReadMemory paměť TGM_CNCEX paměť TGM_GCODE struktura s ukazateli na diagnostické funkce 2.3 Funkce podle priority V této kapitole jsou funkce řazeny od nejnižší priority po prioritu nejvyšší. U funkce Program_Ini se o prioritu v pravém slova smyslu nejedná. Tato funkce je volána pouze jednou při spuštění virtuálního PLC. Program_Ini Deklarace: long Program_Ini (PLC_DATA *pdata) Tato funkce je volaná jen jednou, a to při spuštění virtuálního PLC. Slouží zejména k inicializaci proměnných virtuálního PLC. Výkonný kód funkce Program_Ini nesmí být prázdný. Délka vykonávání funkce není omezena. Při startu virtuálního PLC (v těle funkce Program_Ini) je vhodné zkontrolovat verze PLC a TG Motion. Návratové hodnoty funkce 0 chyba (spouštění PLC se zastaví; uživatel musí chybu vyřešit a znovu spustit PLC) 1 funkce proběhla v pořádku Při nahrání virtuálního PLC se neinicializují hodnoty globálních proměnných, nevolají se konstruktory globáních objektů. Inicializaci je nutno provést ve funkci Program_Ini. -6-

ukázka zdrojového kódu long Program_Ini( PLC_DATA *pdata ) { if( pdata == NULL pdata->structsize!= sizeof( PLC_DATA ) ) return 0; if( pdata->functions.prtwprintf_long == NULL ) return 0; if( pdata->functions.prtwprintf_string == NULL ) return 0; if( pdata->functions.pswprintf == NULL ) return 0; if( pdata->functions.psleepft == NULL ) return 0; if( pheader->compatibility_id!= ID_COMPATIBILITY ) { pdata->functions.pswprintf( info_ini, SIZE_INFO, L"Error start of PLC NO ID COMPABILITY PLC_COMPABILITY_ID = %d TGM_COMPABILITY_ID = %d \n", ID_COMPATIBILITY, pheader->compatibility_id ); pdata->functions.prtwprintf_string( info_ini ); return 0; } ****************************************** Update PLC Version *********************************** Verze_PLC = Get_Version( PLC_VERSION ); ************************************************************************************************* } return 1; Program_01 Deklarace: long Program_01 (PLC_DATA *pdata) Funkce je z TG Motion volána s periodou danou v konfiguračním souboru TGMotion4xx.ini. Perioda je definována položkou Cycle_Time_Program_01, její hodnota se pohybuje v rozmezí 100 μs 10 000 μs (horní hranice není omezena). Délka vykonávání funkce by neměla přesáhnout 20% Cycle_Time_Program_01, aby zbyl čas na vykonání funkcí Program_02 a Program_03. Tato funkce se nejčastěji používá pro základní obsluhu zařízení, která nemusejí být obsluhována pravidelně každý Cycle_Time. Funkce Program_01 má nejnižší prioritu a kdykoli může být přerušena funkcemi Program_02, Program_03, Program_04 a Program_05. Program_02 Deklarace: long Program_02 (PLC_DATA *pdata) Funkce je z TG Motion volána s periodou danou v konfiguračním souboru TGMotion4xx.ini. Perioda je definována položkou Cycle_Time_Program_02, její hodnota se pohybuje v rozmezí 100 μs 10 000 μs (horní hranice není omezena). Délka vykonávání funkce by neměla přesáhnout 20% Cycle_Time_Program_02, aby zbyl čas na vykonání funkcí Program_01 a Program_03. Tato funkce se většinou implementuje jako prázdná funkce. Funkce Program_02 má nízkou prioritu a může být kdykoli přerušena funkcemi Program_03, Program_04 a Program_05. ukázka zdrojového kódu long Program_02(PLC_DATA *pdata) { return 1; } -7-

Program_03 Deklarace: long Program_03 (PLC_DATA *pdata) Funkce je z TG Motion volána s periodou danou v konfiguračním souboru TGMotion4xx.ini. Perioda je definována položkou Cycle_Time_Program_03, její hodnota se pohybuje v rozmezí 100 μs 10 000 μs (horní hranice není omezena). Délka vykonávání funkce by neměla přesáhnout 20% Cycle_Time_Program_03, aby zbyl čas na vykonání funkcí Program_01 a Program_02. Tato funkce se většinou implementuje jako prázdná funkce. Funkce Program_03 má střední prioritu a může být kdykoli přerušena pouze funkcemi Program_04 a Program_05. ukázka zdrojového kódu long Program_03(PLC_DATA *pdata) { return 1; } Program_04 Deklarace: long Program_04 (PLC_DATA *pdata) Funkce je z TG Motion volána synchronně s komunikací v rámci Cycle_Time, tedy jednou během každého Cycle_Time. Ten je definován v souboru TGMotion4xx.ini položkou Cycle_Time (250 μs, 500 μs, 1000 μs). Funkce Program_04 se nejčastěji používá pro modifikaci žádané polohy servopohonů a obsluhu I/O jednotek. Má nejvyšší prioritu (stejně jako funkce Program_05) a vždy se vykoná celá bez přerušení. Délka vykonávání funkce Program_04 nesmí přesáhnout 10% Cycle_Time, aby byla zabezpečena časová přesnost komunikace se servopohony a I/O jednotkami. Ve funkci Program_04 nesmí být volána funkce SleepFt. Program_05 Deklarace: long Program_05 (PLC_DATA *pdata) Funkce je z TG Motion volána synchronně s Interpolátorem, tedy několikrát během každého Cycle_Time. Funkce Program_05 se nejčastěji používá pro modifikaci polohy vypočtené strukturou Interpolator. Má nejvyšší prioritu (stejně jako funkce Program_04) a vždy se vykoná celá bez přerušení. Délka vykonávání funkce Program_05 nesmí přesáhnout 10 μs, aby byla zabezpečena časová přesnost komunikace se servopohony a I/O jednotkami. Ve funkci Program_05 nesmí být volána funkce SleepFt. -8-

2.4 Časová souslednost volání funkcí Cycle_Time = 250 μs Obr. Algoritmus vykonávání PLC pro Cycle_Time = 250 μs Po spuštění PLC a úspěšném vykonání funkce Program_Ini se spustí cyklické volání smyčky trvající 250 μs. Ta je rovnoměrně rozdělena na 5 stejných časových úseků volaných pravidelně každých 50 μs. čas 0 μs Provedou se potřebné interní výpočty a přijmou se data z EtherCAT. Poté se zavolá funkce Program_05, která se vykoná celá bez přerušení. čas 50 μs Provedou se potřebné interní výpočty a pošlou se data do EtherCAT. Poté se zavolá funkce Program_05, která se vykoná celá bez přerušení. čas 100 μs Provedou se potřebné interní výpočty a vypočtou se data PG generátorů žádané polohy všech servopohonů. Poté se zavolá funkce Program_05, která se vykoná celá bez přerušení. -9-

čas 150 μs Provedou se potřebné interní výpočty a zavolá se funkce Program_05, která se vykoná celá bez přerušení. Poté se zavolá funkce Program_04, která se také vykoná celá bez přerušení. Nakonec se zaznamenají všechna data potřebná pro Oscilloscope. čas 200 μs Provedou se potřebné interní výpočty a zavolá se funkce Program_05, která se vykoná celá bez přerušení. Pokud je během kteréhokoli cyklu volná výpočetní kapacita, jsou v případě potřeby obsluhovány funkce Program_01, Program_02 a Program_03. - 10 -

Cycle_Time = 500 μs Obr. Algoritmus vykonávání PLC pro Cycle_Time = 500 μs Po spuštění PLC a úspěšném vykonání funkce Program_Ini se spustí cyklické volání smyčky trvající 500 μs. Ta je rovnoměrně rozdělena na 5 stejných časových úseků volaných pravidelně každých 100 μs. čas 0 μs Provedou se potřebné interní výpočty a přijmou se data z EtherCAT. Poté se zavolá funkce Program_05, která se vykoná celá bez přerušení. čas 100 μs Provedou se potřebné interní výpočty a pošlou se data do EtherCAT. Poté se zavolá funkce Program_05, která se vykoná celá bez přerušení. čas 200 μs Provedou se potřebné interní výpočty a vypočtou se data PG generátorů žádané polohy všech servopohonů. Poté se zavolá funkce Program_05, která se vykoná celá bez přerušení. čas 300 μs Provedou se potřebné interní výpočty a zavolá se funkce Program_05, která se vykoná celá bez přerušení. Poté se zavolá funkce Program_04, která se také vykoná celá bez přerušení. Nakonec se zaznamenají všechna data potřebná pro Oscilloscope. - 11 -

čas 400 μs Provedou se potřebné interní výpočty a zavolá se funkce Program_05, která se vykoná celá bez přerušení. Pokud je během kteréhokoli cyklu volná výpočetní kapacita, jsou v případě potřeby obsluhovány funkce Program_01, Program_02 a Program_03. - 12 -

Cycle_Time = 1000 μs Obr. Algoritmus vykonávání PLC pro Cycle_Time = 1000 μs - 13 -

Po spuštění PLC a úspěšném vykonání funkce Program_Ini se spustí cyklické volání smyčky trvající 1000 μs. Ta je rovnoměrně rozdělena na 10 stejných časových úseků volaných pravidelně každých 100 μs. čas 0 μs Provedou se potřebné interní výpočty a přijmou se data z EtherCAT. Poté se zavolá funkce Program_05, která se vykoná celá bez přerušení. čas 100 μs Provedou se potřebné interní výpočty a pošlou se data do EtherCAT. Poté se zavolá funkce Program_05, která se vykoná celá bez přerušení. čas 200 μs Provedou se potřebné interní výpočty a vypočtou se data PG generátorů žádané polohy všech servopohonů. Poté se zavolá funkce Program_05, která se vykoná celá bez přerušení. čas 300 μs Provedou se potřebné interní výpočty a zavolá se funkce Program_05, která se vykoná celá bez přerušení. Poté se zavolá funkce Program_04, která se také vykoná celá bez přerušení. Nakonec se zaznamenají všechna data potřebná pro Oscilloscope. čas 400 μs, 500 μs, 600 μs, 700 μs, 800 μs, 900 μs Ve všech těchto časových úsecích se provedou potřebné interní výpočty a zavolá se funkce Program_05, která se vykoná celá bez přerušení. Pokud je během kteréhokoli cyklu volná výpočetní kapacita, jsou v případě potřeby obsluhovány funkce Program_01, Program_02 a Program_03. - 14 -

3. Nástroje pro ladění PLC 3.1 Control Observer Hlavním nástrojem pro ladění virtuálního PLC z prostředí Windows je Control Observer. Je dodáván se systémem TG Motion. Jedná se o soubor utilit vyvinutý pro diagnostiku systému TG Motion, odlaďování PLC a obslužných Win aplikací. Control Observer obsahuje nástroje pro přímé testování a ovládání servopohonů, načtení a spuštění PLC kódu a zobrazení parametrů Systémového časovače. Další skupina utilit slouží k zobrazování, sledování, či změně zvolených registrů sdílené paměti. Control observer je samostatně spustitelný program Control_Observer_II.exe bez nutnosti instalace, který se dodává se třemi knihovnami: TGM_Comm_Int_2.dll zabezpečuje komunikaci s TG Motion běžícím na stejném počítači RTX_Box.dll slouží k připojení pomocí sítě LAN k TG Motion běžícím ve speciálním hardware RTX Box TGM_Remote.dll umožňuje spojení pomocí sítě LAN s TG Motion běžícím na jiném počítači Pro přístup k datům sdílené paměti TGM_Data slouží v utilitě Select Registers záložka Free Registers, typ paměti DAT. Součásti Control Observeru Servo Tester utilita k testování a ovládání servopohonů PLC Loader slouží k načtení PLC a jeho spuštění System Timer zobrazuje aktuální vytížení CPU jednotlivými procesy TG Motion Oscilloscope slouží ke grafickému zobrazování hodnot vybraných registrů v závislosti na čase Graphic Viewer používá se ke grafickému zobrazení kontinuální řady vybraných registrů Podrobnější popis viz. kapitola Control Observer. 3.2 Výpisy Pro výpisy do konzole RTX Server se používají diagnostické funkce ze struktury PLC_DATA. Jedná se o tři typy diagnostických funkcí: výpis řetězce do konzole výpis hodnoty proměnné lval (hodnota typu long) do konzole výpis formátovaného textu do konzole 3.3 Oscilloscope Oscilloscope je samostatná utilita běžící v TG Motion. Slouží k zachycení hodnot požadovaných registrů v přesném časovém intervalu Cycle_Time a jejich ukládání do sdílené paměti TGM_Oscilloscope o velikosti 1048576 byte. To se děje ihned po vykonání funkce Program_04. O zobrazení zachycených dat a nastavení parametrů zachycování hodnot se stará utilta Oscilloscope v Control Observeru. Podrobnější popis viz. kapitola Oscilloscope - 15 -

3.4 Aplikace Windows Přístup do sdílených pamětí mají také aplikace běžící pod operačním systémem Windows. Jejich prostřednictvím lze číst hodnoty registrů, případně je i měnit. TG Motion běží pod RealTime, tedy s vyšší prioritou, než mají procesy běžící pod systémem Windows. Z Win aplikací tedy nelze zajistit bezeztrátové zachycení všech potřebných hodnot, případně operativní reakci na nastalé situace. - 16 -