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

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

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

TG Motion verze 4 Hardware návod k obsluze

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

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV

TG Motion verze 4 Hardware návod k obsluze

Management procesu I Mgr. Josef Horálek

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

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

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

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

Windows a real-time. Windows Embedded

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

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

VISUAL BASIC. Přehled témat

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

SEMESTRÁLNÍ PROJEKT Y38PRO

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

TG Drives Modul CNC návod k obsluze

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

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

Úvodem... 9 Kapitola 1 Karetních

26. PERIFERIE PŘIPOJENÉ NA ETHERCAT

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

Instalace a konfigurace web serveru. WA1 Martin Klíma

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

1 Webový server, instalace PHP a MySQL 13

Software pro grafické terminály TERM10 a TERM03

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

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

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

Zápis programu v jazyce C#

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

Software pro vzdálenou laboratoř

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

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

Struktura programu v době běhu

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

Mělká a hluboká kopie

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

Deska sběru chyb a událostí

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

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

Obsah. Předm luva 3. Obsah \ 6

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

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

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

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

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

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

1 Uživatelská dokumentace

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

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

Uživatelská příručka

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

Demoprojekt Damocles 2404

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

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

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

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

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

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

MIDAM Verze 1.1. Hlavní okno :

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

Metody připojování periferií

Seznámení s prostředím dot.net Framework

Procesy a vlákna (Processes and Threads)

Controlweb. Úvod. Specifikace systému

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

Algoritmizace a programování

Více o konstruktorech a destruktorech

5. STRUKTURA PLC PROGRAMU

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

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

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

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

Činnost počítače po zapnutí

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 -

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

Konstruktory a destruktory

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

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

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

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

Generické programování

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.

Matematika v programovacích

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

PROGRAMOVATELNÉ AUTOMATY FATEK

Knihovna WebGraphLib

1. Webový server, instalace PHP a MySQL 13

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

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

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

Transkript:

TG Motion verze 4 Modul Virtuální PLC návod k obsluze Olomoucká 1290/79-1 - Fax: +420 548 141 890

Historie revizí datum verze popis 10. 1. 2017 1.0 31. 7. 2017 1.1 upravena typografie Olomoucká 1290/79-2 - Fax: +420 548 141 890

Obsah 1. Virtuální PLC... 4 1.1 Popis Virtuálního PLC... 4 1.2 Tvorba PLC... 4 1.3 Vyžadovaný algoritmus PLC... 4 1.4 Komunikace s PLC... 5 2. Funkce PLC... 6 2.1 Obecný popis funkcí... 6 2.2 Struktura PLC_DATA... 6 2.3 Funkce podle priority... 7 2.4 Časová souslednost volání funkcí... 11 3. Nástroje pro ladění PLC... 17 3.1 Control Observer... 17 3.2 Výpisy... 17 3.3 Oscilloscope... 17 3.4 Aplikace Windows... 18 Olomoucká 1290/79-3 - Fax: +420 548 141 890

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žné 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 či knihovnami DLL, 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 zdrojových kódů jsou uváděny pro programovací jazyk C/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 nutné 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 strukturu Servo a strukturu 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ů. Olomoucká 1290/79-4 - Fax: +420 548 141 890

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. 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. Velikost sdílené paměti TGM_Data je obvykle 524 288 byte. Skutečnou velikost paměti obsahuje registr TGM_System.HEADER.Mem_Size_Data. Paměť může obsahovat uživatelské registry, data vaček, atd. Nejčastěji je využívána aplikacemi pro vizualizaci běžícími pod Windows. Olomoucká 1290/79-5 - Fax: +420 548 141 890

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 nutné zabezpečit návratovou hodnotu funkce. Viz příklad kódu funkce Program_02. 2.2 Struktura PLC_DATA Struktura slouží pro komunikaci mezi TG Motion a PLC. TG Motion vytvoří 6 instancí struktury PLC_DATA. Každá z 6 funkcí (Program_01 Program_05, Program_Ini) má právě 1 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 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); // výpis řetězce do konzole typedef int _cdecl RTWPRINTF_LONG(LPCWSTR strformat, long lval); // 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 Olomoucká 1290/79-6 - Fax: +420 548 141 890

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 PLC_DATA 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 bytech // ukazatel na sdílenou paměť TGM_System // ukazatel na sdílenou paměť TGM_Data // ukazatel na sdílenou paměť TGM_Oscilloscope // ukazatel na sdílenou paměť TGM_Cam_Profile // ukazatel na sdílenou paměť TGM_Servo // ukazatel na sdílenou paměť TGM_Dio // ukazatel na sdílenou paměť TGM_Interpolator // ukazatel na sdílenou paměť TGM_InterpolatorWriteMemory // ukazatel na sdílenou paměť TGM_InterpolatorReadMemory // ukazatel na sdílenou paměť TGM_CNCEX // ukazatel na sdílenou paměť TGM_GCODE // rezervováno // rezervováno // rezervováno // rezervováno // rezervováno // 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. Olomoucká 1290/79-7 - Fax: +420 548 141 890

Při nahrání Virtuálního PLC se neinicializují hodnoty globálních proměnných, nevolají se konstruktory globálních objektů. Inicializaci je nutné provést ve funkci Program_Ini. 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 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 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 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. Olomoucká 1290/79-8 - Fax: +420 548 141 890

Ukázka zdrojového kódu long Program_02(PLC_DATA *pdata) { return 1; } 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 obvykle pohybuje v rozmezí 100 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é modulem interpolátoru. Má nejvyšší prioritu (stejně jako funkce Program_04) a vždy se vykoná celá bez přerušení. Olomoucká 1290/79-9 - Fax: +420 548 141 890

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. Olomoucká 1290/79-10 - Fax: +420 548 141 890

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 žádané polohy pomocí PG generátorů. Poté se zavolá funkce Program_05, která se vykoná celá bez přerušení. Olomoucká 1290/79-11 - Fax: +420 548 141 890

Č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. Olomoucká 1290/79-12 - Fax: +420 548 141 890

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 žádané polohy pomocí PG generátorů. 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. Olomoucká 1290/79-13 - Fax: +420 548 141 890

Č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. Olomoucká 1290/79-14 - Fax: +420 548 141 890

Cycle_Time = 1000 μs Obr. Algoritmus vykonávání PLC pro Cycle_Time = 1000 μs Olomoucká 1290/79-15 - Fax: +420 548 141 890

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 žádané polohy pomocí PG generátorů. 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. Olomoucká 1290/79-16 - Fax: +420 548 141 890

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 Windows 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á s 3 knihovnami: TGM_Comm_Int_2.dll zabezpečuje komunikaci s TG Motion běžícím na stejném počítači. TGM_Mini.dll obsluhuje TG Motion běžící v TGMmini. 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ů. Pro podrobnější popis viz kapitolu 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 3 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. To se děje ihned po vykonání funkce Program_04. O zobrazení zachycených dat a nastavení parametrů ovlivňujících zaznamenávání hodnot se stará utilita Oscilloscope v Control Observeru. Pro podrobnější popis viz kapitolu Oscilloscope. Olomoucká 1290/79-17 - Fax: +420 548 141 890

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ěží v real-time prostředí, tedy s vyšší prioritou, než mají procesy běžící pod systémem Windows. Z Windows aplikací tedy nelze zajistit bezeztrátové zachycení všech potřebných hodnot, případně operativní reakci na nastalé situace. Olomoucká 1290/79-18 - Fax: +420 548 141 890