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

Funkce slouží k zápisu textových řetězců.

WriteResult := dynpar.setdynamicparamstr(id := ParamId, value := ParamToWrite);
  • id: string_ref - název parametru
  • value: string_ref - hodnota parametru k zapsání
  • Žádné výstupní parametry
  • 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

Funkce slouží k zápisu celočíselné hodnoty.

WriteResult := dynpar.setdynamicparamint(id := ParamId, value := ParamToWrite);
  • id: string_ref - název parametru
  • value: int - hodnota parametru k zapsání
  • Žádné výstupní parametry
  • 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

Funkce slouží k zápisu logické hodnoty.

WriteResult := dynpar.setdynamicparambool(id := ParamId, value := ParamToWrite);
  • id: string_ref - název parametru
  • value: bool - hodnota parametru k zapsání
  • Žádné výstupní parametry
  • 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

Funke slouží k zápisu časové hodnoty.

WriteResult := dynpar.setdynamicparamtime(id := ParamId, value := ParamToWrite);
  • id: string_ref - název parametru
  • value: time - hodnota parametru k zapsání
  • Žádné výstupní parametry
  • 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 slouží k zápisu data a časové hodnoty.

WriteResult := dynpar.setdynamicparamdt(id := ParamId, value := ParamToWrite);
  • id: string_ref - název parametru
  • value: dt - hodnota parametru k zapsání
  • Žádné výstupní parametry
  • 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

Funkce slouží ke čtení textového řetězce.

ReadResult := dynpar.trygetdynamicparamstr(id := ParamId, value => ReturnValue);
  • id: string_ref - název parametru
  • value: string - vrácená hodnota parametru
  • 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

Slouží ke čtení celočíselné hodnoty.

ReadResult := dynpar.trygetdynamicparamint(id:= ParamId, value => ReturnValue);
  • id: string_ref - název parametru
  • value: int - vrácená hodnota parametru
  • 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

Funkce slouží ke čtení logické hodnoty.

ReadResult := dynpar.trygetdynamicparambool(id:= ParamId, value => ReturnValue);
  • id: string_ref - název parametru
  • value: bool - vrácená hodnota parametru
  • 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.

ReadResult := dynpar.trygetdynamicparamtime(id:= ParamId, value => ReturnValue);
  • id: string_ref - název parametru
  • value: time - vrácená hodnota parametru
  • 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 slouží ke čtení data a časové hodnoty.

ReadResult := dynpar.trygetdynamicparamdt(id:= ParamId, value => ReturnValue);
  • id: string_ref - název parametru
  • value: dt - vrácená hodnota parametru
  • 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

Funkce slouží ke smazání dynamického parametru. Dynamické parametry je možné hromadně smazat při nahrání sestavy.

DeleteResult := dynpar.deletedynamicparam(ParamToDelete);
  • id: string_ref - název parametru
  • Žádné výstupní parametry
  • 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

Funkce slouží pro uložení celého stromu HW konfigurace do paměti PLC. Nemá žádné parametry.

CommitResult := dynpar.commithwconfiguration();
  • 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

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

RestartResult := reloadapplication(Flag);

Vstupní parametry - Flags (udint)

  • 0x00 - Warm Restart
  • 0x01 - Cold Restart
  • 0x02 - Restart celého systému (reboot)
  • Žádné výstupní parametry
  • 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“.

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 Counthwcfg.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
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
Typ klíče Klíč
Engineering hwcfg.hwconfiguration.runtime.sscp.users.user[1].@name
Full Controlhwcfg.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
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 Validationhwcfg.hwconfiguration.runtime.rcwaredb.urls.url[1].@certificatevalidation
Communication Period hwcfg.hwconfiguration.runtime.rcwaredb.@updateperiod
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 Validationhwcfg.hwconfiguration.runtime.proxy.urls.url[1].@certificatevalidation
Keep-alive Period hwcfg.hwconfiguration.runtime.proxy.@keepalive
Typ klíče Klíč
UTC Offset hwcfg.hwconfiguration.runtime.sscp.users.user[1].@name
Daylight Offsets Numberhwcfg.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
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 Validationhwcfg.hwconfiguration.timetransformation.ntp.urls.url[1].@certificatevalidation
Keep-alive Period hwcfg.hwconfiguration.timetransformation.ntp.@keepalive
Typ klíče Klíč
Use for Historyhwcfg.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“.

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 Enableimage.„channel_name“>Enable
Device Addressimage.„channel_name“.„device_name“>Address
Device Enable image.„channel_name“.„device_name“>Enable
Typ klíče Klíč
Channel Enableimage.„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
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 Instanceimage.„channel_name“.„device_name“>DeviceInstance
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 Passwordimage.„channel_name“.„device_name“>MgmtPassword
Typ klíčeKlíč
IPv4 image.„channel_name“.„device_name“>Ipv4
Port image.„channel_name“.„device_name“>Port
Host image.„channel_name“.„device_name“>Host
Typ klíče Klíč
Port Numberimage.„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
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 Addressimage.„channel_name“.„device_name“>UseSecondary
Device Enable image.„channel_name“.„device_name“>Enable
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 Addressimage.„channel_name“.“device_name“>Address
Typ klíče Klíč
Channel Enableimage.„channel_name“>Enable
IPv4 image.„channel_name“.„device_name“>Ipv4
Port image.„channel_name“.„device_name“>Port
Device Addressimage.„channel_name“.„device_name“>Address
Device Enable image.„channel_name“.„device_name“>Enable
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 Validationimage.„channel_name“.CertificateValidation
Typ klíče Klíč
Port Numberimage.„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
  • © Energocentrum Plus, s.r.o. 2017 - 2024