Dynamické změny
Dynamické změny jsou pokročilé funkce, pomocí kterých můžeme měnit buď konfiguraci PLC, nebo samotné vlastnosti komunikačních kanálů nahraných do PLC. Tudíž není potřeba provádět konfiguraci přímo v IDE, ale lze jednotlivé konfigurační proměnné vytáhnout například do HMI.
Pomocí funkcí popsaných níže je možné naprogramovat v ST vlastní funkční bloky podle toho, co je zrovna v projektu vyžadováno.
dynpar.setdynamicparamstr
Popis
Funkce slouží k zápisu textových řetězců.
Použití v ST
WriteResult := dynpar.setdynamicparamstr(id := ParamId, value := ParamToWrite);
Vstupy
- id: string_ref - název parametru
- value: string_ref - hodnota parametru k zapsání
Výstupy
- Žádné výstupní parametry
Návratové hodnoty
- 0 - žádná chyba
- -1 - záznam neexistuje
- -2 - neznámý požadovaný typ (v praxi nemůže nastat)
- -3 - nesoulad velikosti uloženého záznamu a požadovaného záznamu (např. uložen datový typ bool a čteme datový typ int)
- -4 - interní chyba kódu
dynpar.setdynamicparamint
Popis
Funkce slouží k zápisu celočíselné hodnoty.
Použití v ST
WriteResult := dynpar.setdynamicparamint(id := ParamId, value := ParamToWrite);
Vstupy
- id: string_ref - název parametru
- value: int - hodnota parametru k zapsání
Výstupy
- Žádné výstupní parametry
Návratové hodnoty
- 0 - žádná chyba
- -1 - záznam neexistuje
- -2 - neznámý požadovaný typ (v praxi nemůže nastat)
- -3 - nesoulad velikosti uloženého záznamu a požadovaného záznamu (např. uložen datový typ bool a čteme datový typ int)
- -4 - interní chyba kódu
dynpar.setdynamicparambool
Popis
Funkce slouží k zápisu logické hodnoty.
Použití v ST
WriteResult := dynpar.setdynamicparambool(id := ParamId, value := ParamToWrite);
Vstupy
- id: string_ref - název parametru
- value: bool - hodnota parametru k zapsání
Výstupy
- Žádné výstupní parametry
Návratové hodnoty
- 0 - žádná chyba
- -1 - záznam neexistuje
- -2 - neznámý požadovaný typ (v praxi nemůže nastat)
- -3 - nesoulad velikosti uloženého záznamu a požadovaného záznamu (např. uložen datový typ bool a čteme datový typ int)
- -4 - interní chyba kódu
dynpar.setdynamicparamtime
Popis
Funke slouží k zápisu časové hodnoty.
Použití v ST
WriteResult := dynpar.setdynamicparamtime(id := ParamId, value := ParamToWrite);
Vstupy
- id: string_ref - název parametru
- value: time - hodnota parametru k zapsání
Výstupy
- Žádné výstupní parametry
Návratové hodnoty
- 0 - žádná chyba
- -1 - záznam neexistuje
- -2 - neznámý požadovaný typ (v praxi nemůže nastat)
- -3 - nesoulad velikosti uloženého záznamu a požadovaného záznamu (např. uložen datový typ bool a čteme datový typ int)
- -4 - interní chyba kódu
dynpar.setdynamicparamdt
Popis
Funkce slouží k zápisu data a časové hodnoty.
Použití v ST
WriteResult := dynpar.setdynamicparamdt(id := ParamId, value := ParamToWrite);
Vstupy
- id: string_ref - název parametru
- value: dt - hodnota parametru k zapsání
Výstupy
- Žádné výstupní parametry
Návratové hodnoty
- 0 - žádná chyba
- -1 - záznam neexistuje
- -2 - neznámý požadovaný typ (v praxi nemůže nastat)
- -3 - nesoulad velikosti uloženého záznamu a požadovaného záznamu (např. uložen datový typ bool a čteme datový typ int)
- -4 - interní chyba kódu
dynpar.trygetdynamicparamstr
Popis
Funkce slouží ke čtení textového řetězce.
Použití v ST
ReadResult := dynpar.trygetdynamicparamstr(id := ParamId, value => ReturnValue);
Vstupy
- id: string_ref - název parametru
Výstupy
- value: string - vrácená hodnota parametru
Návratové hodnoty
- 0 - žádná chyba
- -1 - záznam neexistuje
- -2 - neznámý požadovaný typ (v praxi nemůže nastat)
- -3 - nesoulad velikosti uloženého záznamu a požadovaného záznamu (např. uložen datový typ bool a čteme datový typ int)
- -4 - interní chyba kódu
Funkce dynpar.trygetdynamicparamint
Slouží ke čtení celočíselné hodnoty.
Použití v ST
ReadResult := dynpar.trygetdynamicparamint(id:= ParamId, value => ReturnValue);
Vstupy
- id: string_ref - název parametru
Výstupy
- value: int - vrácená hodnota parametru
Návratové hodnoty
- 0 - žádná chyba
- -1 - záznam neexistuje
- -2 - neznámý požadovaný typ (v praxi nemůže nastat)
- -3 - nesoulad velikosti uloženého záznamu a požadovaného záznamu (např. uložen datový typ bool a čteme datový typ int)
- -4 - interní chyba kódu
dynpar.trygetdynamicparambool
Popis
Funkce slouží ke čtení logické hodnoty.
Použití v ST
ReadResult := dynpar.trygetdynamicparambool(id:= ParamId, value => ReturnValue);
Vstupy
- id: string_ref - název parametru
Výstupy
- value: bool - vrácená hodnota parametru
Návratové hodnoty
- 0 - žádná chyba
- -1 - záznam neexistuje
- -2 - neznámý požadovaný typ (v praxi nemůže nastat)
- -3 - nesoulad velikosti uloženého záznamu a požadovaného záznamu (např. uložen datový typ bool a čteme datový typ int)
- -4 - interní chyba kódu
dynpar.trygetdynamicparamtime
Funkce slouží ke čtení časové hodnoty.
Použití v ST
ReadResult := dynpar.trygetdynamicparamtime(id:= ParamId, value => ReturnValue);
Vstupy
- id: string_ref - název parametru
Výstupy
- value: time - vrácená hodnota parametru
Návratové hodnoty
- 0 - žádná chyba
- -1 - záznam neexistuje
- -2 - neznámý požadovaný typ (v praxi nemůže nastat)
- -3 - nesoulad velikosti uloženého záznamu a požadovaného záznamu (např. uložen datový typ bool a čteme datový typ int)
- -4 - interní chyba kódu
dynpar.trygetdynamicparamdt
Popis
Funkce slouží ke čtení data a časové hodnoty.
Použití v ST
ReadResult := dynpar.trygetdynamicparamdt(id:= ParamId, value => ReturnValue);
Vstupy
- id: string_ref - název parametru
Výstupy
- value: dt - vrácená hodnota parametru
Návratové hodnoty
- 0 - žádná chyba
- -1 - záznam neexistuje
- -2 - neznámý požadovaný typ (v praxi nemůže nastat)
- -3 - nesoulad velikosti uloženého záznamu a požadovaného záznamu (např. uložen datový typ bool a čteme datový typ int)
- -4 - interní chyba kódu
dynpar.deletedynamicparam
Popis
Funkce slouží ke smazání dynamického parametru. Dynamické parametry je možné hromadně smazat při nahrání sestavy.
Použití v ST
DeleteResult := dynpar.deletedynamicparam(ParamToDelete);
Vstupy
- id: string_ref - název parametru
Výstupy
- Žádné výstupní parametry
Návratové hodnoty
- 0 - žádná chyba
- -1 - záznam neexistuje
- -2 - neznámý požadovaný typ (v praxi nemůže nastat)
- -3 - nesoulad velikosti uloženého záznamu a požadovaného záznamu (např. uložen datový typ bool a čteme datový typ int)
- -4 - interní chyba kódu
dynpar.commithwconfiguration
Popis
Funkce slouží pro uložení celého stromu HW konfigurace do paměti PLC. Nemá žádné parametry.
Použití v ST
CommitResult := dynpar.commithwconfiguration();
Návratové hodnoty
- 0 - žádná chyba
- -1 - záznam neexistuje
- -2 - neznámý požadovaný typ (v praxi nemůže nastat)
- -3 - nesoulad velikosti uloženého záznamu a požadovaného záznamu (např. uložen datový typ bool a čteme datový typ int)
- -4 - interní chyba kódu
Funkce ReloadApplication
Slouží k restartu PLC. Je možné si podle daného flagu určit jaký typ restartu se má provést. Pokud se nenastaví žádný flag, tak se PLC restartuje standardním způsobem (Warm Restart).
Použití v ST
RestartResult := reloadapplication(Flag);
Vstupní parametry - Flags (udint)
- 0x00 - Warm Restart
- 0x01 - Cold Restart
- 0x02 - Restart celého systému (reboot)
Výstupy
- Žádné výstupní parametry
Návratové hodnoty
- 0 - žádná chyba
- -1 - záznam neexistuje
- -2 - neznámý požadovaný typ (v praxi nemůže nastat)
- -3 - nesoulad velikosti uloženého záznamu a požadovaného záznamu (např. uložen datový typ bool a čteme datový typ int)
- -4 - interní chyba kódu
Klíče pro konfiguraci PLC
Tyto klíče se dají najít v adresáři projektu v adresáři bin, kde se nachází soubor s příponou .XML, který se dá otevřít v textovém editoru. Tento soubor vzniká nahráním konfigurace do PLC.
Před klíče pro konfiguraci PLC se dává předpona „hwcfg“. V XML souboru se pohybujeme po jednotlivých uzlech, kde například pro nastavení IP adresy PLC musíme napsat klíč ve tvaru „hwcfg.hwconfiguration.runtime.lwip.ipv4.@ipaddress“.
Tabulka klíčů pro konfiguraci PLC
Networking
Typ klíče | Klíč |
---|---|
IP Address | hwcfg.hwconfiguration.runtime.lwip.ipv4.@ipaddress |
Network Mask | hwcfg.hwconfiguration.runtime.lwip.ipv4.@mask |
Gateway | hwcfg.hwconfiguration.runtime.lwip.ipv4.@gateway |
DNS | hwcfg.hwconfiguration.runtime.lwip.ipv4.@nameserver |
Static/DHCP | hwcfg.hwconfiguration.runtime.lwip.ipv4.@mode |
Network Interface Controller Count | hwcfg.hwconfiguration.runtime.advanced.@niccount |
Enable Configuration over UDP | hwcfg.hwconfiguration.runtime.configservice.@enabled |
Config Service Port | hwcfg.hwconfiguration.runtime.configservice.@port |
Enable HTTP | hwcfg.hwconfiguration.runtime.httpservice.@enabled |
HTTP Port | hwcfg.hwconfiguration.runtime.httpservice.@port |
Enable HTTPS | hwcfg.hwconfiguration.runtime.httpsservice.@enabled |
HTTPS Port | hwcfg.hwconfiguration.runtime.httpsservice.@port |
Redirect HTTP to HTTPS | hwcfg.hwconfiguration.runtime.httpservice.@redirect |
SSCP Parameters
Typ klíče | Klíč |
---|---|
SSCP Address | hwcfg.hwconfiguration.runtime.sscp.@slaveid |
Number of Registrable Groups | hwcfg.hwconfiguration.runtime.sscp.@groupscount |
Number of Variables in Group | hwcfg.hwconfiguration.runtime.sscp.@groupvariablecount |
Enable TCP Server | hwcfg.hwconfiguration.runtime.sscp.tcp.@enabled |
TCP Server Port | hwcfg.hwconfiguration.runtime.sscp.tcp.@port |
Enable SSCP Serial | hwcfg.hwconfiguration.runtime.sscp.serial.@enabled |
SSCP Serial Port | hwcfg.hwconfiguration.runtime.sscp.serial.@port |
SSCP Serial Baudrate | hwcfg.hwconfiguration.runtime.sscp.serial.@baudrate |
SSCP Serial Mode (Server/Router) | hwcfg.hwconfiguration.runtime.sscp.serial.@mode |
Enable SSL Server | hwcfg.hwconfiguration.runtime.sscp.ssl.@enabled |
SSL Server Port | hwcfg.hwconfiguration.runtime.sscp.ssl.@port |
Users Definition
Typ klíče | Klíč |
---|---|
Engineering | hwcfg.hwconfiguration.runtime.sscp.users.user[1].@name |
Full Control | hwcfg.hwconfiguration.runtime.sscp.users.user[2].@name |
Read Only | hwcfg.hwconfiguration.runtime.sscp.users.user[3].@name |
First User | hwcfg.hwconfiguration.runtime.sscp.users.user[first()].@name |
Last User | hwcfg.hwconfiguration.runtime.sscp.users.user[last()].@name |
Database Parameters
Typ klíče | Klíč |
---|---|
Enabled | hwcfg.hwconfiguration.runtime.rcwaredb.@enabled |
Protocol | hwcfg.hwconfiguration.runtime.rcwaredb.urls.url[1].@protocol |
Host | hwcfg.hwconfiguration.runtime.rcwaredb.urls.url[1].@host |
Path | hwcfg.hwconfiguration.runtime.rcwaredb.urls.url[1].@path |
Port | hwcfg.hwconfiguration.runtime.rcwaredb.urls.url[1].@port |
User Name | hwcfg.hwconfiguration.runtime.rcwaredb.urls.url[1].@username |
Password | hwcfg.hwconfiguration.runtime.rcwaredb.urls.url[1].@password |
Certificate Validation | hwcfg.hwconfiguration.runtime.rcwaredb.urls.url[1].@certificatevalidation |
Communication Period | hwcfg.hwconfiguration.runtime.rcwaredb.@updateperiod |
Proxy Parameters
Typ klíče | Klíč |
---|---|
Enabled | hwcfg.hwconfiguration.runtime.proxy.@enabled |
Proxy ID | hwcfg.hwconfiguration.runtime.proxy.@id |
Protocol | hwcfg.hwconfiguration.runtime.proxy.urls.url[1].@protocol |
Host | hwcfg.hwconfiguration.runtime.proxy.urls.url[1].@host |
Path | hwcfg.hwconfiguration.runtime.proxy.urls.url[1].@path |
Port | hwcfg.hwconfiguration.runtime.proxy.urls.url[1].@port |
Certificate Validation | hwcfg.hwconfiguration.runtime.proxy.urls.url[1].@certificatevalidation |
Keep-alive Period | hwcfg.hwconfiguration.runtime.proxy.@keepalive |
Date/Time Settings
Typ klíče | Klíč |
---|---|
UTC Offset | hwcfg.hwconfiguration.runtime.sscp.users.user[1].@name |
Daylight Offsets Number | hwcfg.hwconfiguration.runtime.sscp.users.user[2].@name |
Year 1 | hwcfg.hwconfiguration.timetransformation.daylights.daylight[1].@year |
Year 20 | hwcfg.hwconfiguration.timetransformation.daylights.daylight[20].@year |
First Year | hwcfg.hwconfiguration.timetransformation.daylights.daylight[first].@year |
Last Year | hwcfg.hwconfiguration.timetransformation.daylights.daylight[last].@year |
Offset Start | hwcfg.hwconfiguration.timetransformation.daylights.daylight[1].@start |
Offset End | hwcfg.hwconfiguration.timetransformation.daylights.daylight[1].@end |
Daylight Offsets | hwcfg.hwconfiguration.timetransformation.daylights.daylight[1].@daylightoffset |
NTP Server
Typ klíče | Klíč |
---|---|
Protocol | hwcfg.hwconfiguration.timetransformation.ntp.urls.url[1].@protocol |
Host | hwcfg.hwconfiguration.timetransformation.ntp.urls.url[1].@host |
Path | hwcfg.hwconfiguration.timetransformation.ntp.urls.url[1].@path |
Port | hwcfg.hwconfiguration.timetransformation.ntp.urls.url[1].@port |
Certificate Validation | hwcfg.hwconfiguration.timetransformation.ntp.urls.url[1].@certificatevalidation |
Keep-alive Period | hwcfg.hwconfiguration.timetransformation.ntp.@keepalive |
SD Card
Typ klíče | Klíč |
---|---|
Use for History | hwcfg.hwconfiguration.memorylayout.sdcard.@useforhistory |
History Size | hwcfg.hwconfiguration.memorylayout.sdcard.@historysize |
Klíče pro dynamické změny v image
Klíče pro dynamické změny v image se vypisují v záložce „Výstup“ ve formátu „OEM Key „channel>ComPort“ → 9698843FC46A2D1A, datatype: SignedInteger32“, kde „channel“ je název kanálu a „ComPort“ daný parametr, z kterého chceme číst nebo do něj zapisovat. Za klíčem se dále vypíše, jakého datového typu je daný parametr. V tomto případě bychom pro čtení tohoto klíče vybrali funkci dynpar.trygetdynamicparamint a pro zápis dynpar.setdynamicparamint.
U klíčů pro změnu v image je potřeba přidat před vypsané klíče ještě předponu „image“. Pro příklad pro změnu komunikačního portu u modbusového sériového kanálu s názvem „modbus_channel“ by bylo potřeba napsat klíč ve tvaru „image.modbus_channel>ComPort“.
Tabulka klíčů pro dynamické změny vlastností komunikačních protokolů
Modbus Serial
Typ klíče | Klíč |
---|---|
Port Number | image.„channel_name“>ComPort |
Baud Rate | image.„channel_name“>Baudrate |
Data Bits | image.„channel_name“>Databits |
Parity | image.„channel_name“>Parity |
Stop Bits | image.„channel_name“>Stopbits |
Channel Enable | image.„channel_name“>Enable |
Device Address | image.„channel_name“.„device_name“>Address |
Device Enable | image.„channel_name“.„device_name“>Enable |
Modbus TCP
Typ klíče | Klíč |
---|---|
Channel Enable | image.„channel_name“>Enable |
Device Enable | image.„channel_name“.„device_name“>Enable |
IPv4 | image.„channel_name“.„device_name“>Ipv4 |
Port | image.„channel_name“.„device_name“>Port |
Host | image.„channel_name“.„device_name“>Host |
Address | image.„channel_name“.„device_name“>Address |
BACnet Client
Typ klíče | Klíč |
---|---|
IPv4 | image.„channel_name“.„device_name“>Ipv4 |
Port | image.„channel_name“.„device_name“>Port |
Host | image.„channel_name“.„device_name“>Host |
Device Instance | image.„channel_name“.„device_name“>DeviceInstance |
BACnet Server
Typ klíče | Klíč |
---|---|
IPv4 | image.„channel_name“.„device_name“>Ipv4 |
Port | image.„channel_name“.„device_name“>Port |
Device Instance | image.„channel_name“.„device_name“>DeviceInstance |
Management Password | image.„channel_name“.„device_name“>MgmtPassword |
Daikin
Typ klíče | Klíč |
---|---|
IPv4 | image.„channel_name“.„device_name“>Ipv4 |
Port | image.„channel_name“.„device_name“>Port |
Host | image.„channel_name“.„device_name“>Host |
IEC
Typ klíče | Klíč |
---|---|
Port Number | image.„channel_name“>ComPort |
Baud Rate | image.„channel_name“>Baudrate |
Data Bits | image.„channel_name“>Databits |
Parity | image.„channel_name“>Parity |
Stop Bits | image.„channel_name“>Stopbits |
Mbus
Typ klíče | Klíč |
---|---|
Port Number | image.„channel_name“>ComPort |
Baud Rate | image.„channel_name“>Baudrate |
Data Bits | image.„channel_name“>Databits |
Parity | image.„channel_name“>Parity |
Stop Bits | image.„channel_name“>Stopbits |
Primary Address | image.„channel_name“.„device_name“>Primary |
Secondary Address | image.„channel_name“.„device_name“>Secondary |
Use Secondary Address | image.„channel_name“.„device_name“>UseSecondary |
Device Enable | image.„channel_name“.„device_name“>Enable |
Modbus Server Serial
Typ klíče | Klíč |
---|---|
Port Number | image.„channel_name“>ComPort |
Baud Rate | image.„channel_name“>Baudrate |
Data Bits | image.„channel_name“>Databits |
Parity | image.„channel_name“>Parity |
Stop Bits | image.„channel_name“>Stopbits |
Device Address | image.„channel_name“.“device_name“>Address |
Modbus Server TCP
Typ klíče | Klíč |
---|---|
Channel Enable | image.„channel_name“>Enable |
IPv4 | image.„channel_name“.„device_name“>Ipv4 |
Port | image.„channel_name“.„device_name“>Port |
Device Address | image.„channel_name“.„device_name“>Address |
Device Enable | image.„channel_name“.„device_name“>Enable |
Tabulka klíčů pro dynamické změny vlastností alarmových kanálů
SMTP
Typ klíče | Klíč |
---|---|
Server | image.„channel_name“.Host |
Port | image.„channel_name“.Port |
Use Authentication | image.„channel_name“.UseAuth |
Username | image.„channel_name“.Username |
Password | image.„channel_name“.Password |
Enable SSL | image.„channel_name“.Ssl |
Certificate Validation | image.„channel_name“.CertificateValidation |
GSM
Typ klíče | Klíč |
---|---|
Port Number | image.„channel_name“.ComPort |
Baud Rate | image.„channel_name“.Baudrate |
Data Bits | image.„channel_name“.Databits |
Parity | image.„channel_name“.Parity |
Stop Bits | image.„channel_name“.Stopbits |