Difference between revisions of "Libraries for IEC 61131-3"

From IPLOG
Jump to: navigation, search
(→‎Modbus library)
(→‎List of Libraries)
 
(25 intermediate revisions by 3 users not shown)
Line 37: Line 37:
 
|out
 
|out
 
|ERR_ID
 
|ERR_ID
−
|int
+
|word
 
|
 
|
−
|identifies occured error by unique code
+
|identifies occured error by [[Error Codes|unique code]]
 
|-
 
|-
 
|out
 
|out
Line 47: Line 47:
 
|indicates success operation and valid output
 
|indicates success operation and valid output
 
|}
 
|}
 +
== List of Libraries ==
 +
{{ycgu-cooltable-3
 +
|title-left='''Libraries for METEL IEC 61131-3 IDE'''
 +
|title-center='''Utility for METEL IEC 61131-3 IDE'''
 +
|title-right='''Error codes'''
 +
|content-left=
 +
''' '''
 +
* [[Master Mode | Modbus MASTER Mode]]
 +
* [[Slave Mode | Modbus SLAVE Mode]]
 +
* [[Blocks IPWatchdog | IPWatchdog]]
 +
* [[Blocks Dataloger | Dataloger]]
 +
* [[Block Program | Program]]
 +
* [[Block Audio | Audio]]
 +
* [[Block E-mail | E-mail]]
 +
* [[GeViSoft | GeViSoft]]
 +
* [[SMS | SMS]]
 +
* [[SNMP | SNMP]]
 +
* [[TCP | TCP]]
 +
* [[Scripting | Scripting]]
 +
* [[Onvif | Onvif]]
 +
* [[LORA | LORA]]
 +
* [[GSM | GSM]]
 +
* [[Exchnge | Exchange]]
 +
* [[Debug | Debug]]
 +
* [[DALI | DALI]]
 +
* [[Cast | Cast]]
 +
* [[PelcoP/D | Pelco P/D]]
 +
* [[VALert | V-Alert]]
 +
* [[Keyence | Keyence]]
 +
* [[Mobotix | Mobotix]]
  
−
==== Error codes ====
+
|content-center=
−
{| class="wikitable"
+
''' '''
−
!Error code
+
* [[Blocks Generators | Generators]]
−
!Short name
+
* [[Blocks Hexstrings | Hexstrings]]
−
!Description
+
* [[Blocks Bit_Operations | Bit Operations]]
−
|-
 
−
|0x0
 
−
|ERR_OK
 
−
|No error
 
−
|-
 
−
|
 
−
|
 
−
|
 
−
|-
 
−
|0x102
 
−
|ERROR_STD_NO_SUCH_FILE_OR_DIRECTORY
 
−
|
 
−
|-
 
−
|0x10C
 
−
|ERROR_STD_OUT_OF_MEMORY
 
−
|
 
−
|-
 
−
|0x113
 
−
|ERROR_STD_NO_SUCH_DEVICE
 
−
|
 
−
|-
 
−
|0x116
 
−
|ERROR_STD_INVALID_ARGUMENT
 
−
|
 
−
|-
 
−
|
 
−
|
 
−
|
 
−
|-
 
−
|0x16E
 
−
|ERROR_STD_CONNECTION_TIMED_OUT
 
−
|
 
−
|-
 
−
|
 
−
|
 
−
|
 
−
|-
 
−
|0x1001
 
−
|ERROR_MODBUS_INVALID_BUS
 
−
|
 
−
|-
 
−
|0x1002
 
−
|ERROR_MODBUS_INVALID_REGISTER
 
−
|
 
−
|-
 
−
|0x1003
 
−
|ERROR_MODBUS_INVALID_UNIT_ID
 
−
|
 
−
|-
 
−
|0x1011
 
−
|ERROR_MODBUS_EXCEPTION_ILLEGAL_FUNCTION
 
−
|
 
−
|-
 
−
|0x1012
 
−
|ERROR_MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS
 
−
|
 
−
|-
 
−
|0x1013
 
−
|ERROR_MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE
 
−
|
 
−
|-
 
−
|0x1014
 
−
|ERROR_MODBUS_EXCEPTION_SLAVE_OR_SERVER_FAILURE
 
−
|
 
−
|-
 
−
|0x1015
 
−
|ERROR_MODBUS_EXCEPTION_ACKNOWLEDGE
 
−
|
 
−
|-
 
−
|0x1016
 
−
|ERROR_MODBUS_EXCEPTION_SLAVE_OR_SERVER_BUSY
 
−
|
 
−
|-
 
−
|0x1017
 
−
|ERROR_MODBUS_EXCEPTION_NEGATIVE_ACKNOWLEDGE
 
−
|
 
−
|-
 
−
|0x1018
 
−
|ERROR_MODBUS_EXCEPTION_MEMORY_PARITY
 
−
|
 
−
|-
 
−
|0x1019
 
−
|ERROR_MODBUS_EXCEPTION_GATEWAY_PATH
 
−
|
 
−
|-
 
−
|0x101A
 
−
|ERROR_MODBUS_EXCEPTION_GATEWAY_TARGET
 
−
|
 
−
|-
 
−
|0x1021
 
−
|ERROR_MODBUS_EMBBADCRC
 
−
|
 
−
|-
 
−
|0x1022
 
−
|ERROR_MODBUS_EMBBADDATA
 
−
|
 
−
|-
 
−
|0x1023
 
−
|ERROR_MODBUS_EMBBADEXC
 
−
|
 
−
|-
 
−
|0x1024
 
−
|ERROR_MODBUS_EMBUNKEXC
 
−
|
 
−
|-
 
−
|0x1025
 
−
|ERROR_MODBUS_EMBMDATA
 
−
|
 
−
|-
 
−
|0x1026
 
−
|ERROR_MODBUS_EMBBADSLAVE
 
−
|
 
−
|-
 
−
|
 
−
|
 
−
|
 
−
|}
 
−
 
 
−
== Libraries ==
 
−
 
 
−
=== MODBUS RTU ===
 
−
 
 
−
==== MODBUS_RTU_CFG ====
 
−
Set bus parameters
 
−
{| class="wikitable"
 
−
|-
 
−
|in
 
−
|Bus
 
−
|string
 
−
|
 
−
|path to bus device (/dev/ttyS0)
 
−
|-
 
−
|in
 
−
|Baud
 
−
|int
 
−
|
 
−
|standard baudrates from 150 to 115200
 
−
|-
 
−
|in
 
−
|Parity
 
−
|string[1]
 
−
|
 
−
|"N" = none, "E" = even, "O" = odd
 
−
|-
 
−
|in
 
−
|Databit
 
−
|USINT
 
−
|
 
−
|Databits (5,6,7,8)
 
−
|-
 
−
|in
 
−
|Stopbit
 
−
|USINT
 
−
|
 
−
|Stopbits (1,2)
 
−
|-
 
−
|out
 
−
|ERR
 
−
|bool
 
−
|
 
−
|indicates some error occurs (0 = OK)
 
−
|-
 
−
|out
 
−
|ERR_ID
 
−
|WORD
 
−
|
 
−
|identifies occured error by unique code
 
−
|}
 
−
 
 
−
==== MODBUS_RTU_R_COIL ====
 
−
Reads one coil register
 
−
{| class="wikitable"
 
−
| colspan="5" |[[#Asynchronous operations|Asynchronous interface]]
 
−
|-
 
−
|in
 
−
|Bus
 
−
|string
 
−
|
 
−
|path to bus device (/dev/ttyS0)
 
−
|-
 
−
|in
 
−
|UnitID
 
−
|byte
 
−
|
 
−
|device bus address (0-247)
 
−
|-
 
−
|in
 
−
|OfsAdr
 
−
|word
 
−
|
 
−
|register address (1-9999)
 
−
|-
 
−
|in
 
−
|Timeout
 
−
|byte
 
−
|
 
−
|timeout in seconds
 
−
|-
 
−
|out
 
−
|Q
 
−
|bool
 
−
|
 
−
|readed value
 
−
|}
 
−
 
 
−
==== MODBUS_RTU_R_DISCRETE ====
 
−
Read one discrete discrete input register
 
−
{| class="wikitable"
 
−
| colspan="5" |[[#Asynchronous operations|Asynchronous interface]]
 
−
|-
 
−
|in
 
−
|Bus
 
−
|string
 
−
|
 
−
|path to bus device (/dev/ttyS0)
 
−
|-
 
−
|in
 
−
|UnitID
 
−
|byte
 
−
|
 
−
|device bus address (0-247)
 
−
|-
 
−
|in
 
−
|OfsAdr
 
−
|word
 
−
|
 
−
|register address (1-9999)
 
−
|-
 
−
|in
 
−
|Timeout
 
−
|byte
 
−
|
 
−
|timeout in seconds
 
−
|-
 
−
|out
 
−
|Q
 
−
|bool
 
−
|
 
−
|readed value
 
−
|}
 
−
 
 
−
==== MODBUS_RTU_R_HOLDING ====
 
−
Reads one holding register
 
−
{| class="wikitable"
 
−
| colspan="5" |[[#Asynchronous operations|Asynchronous interface]]
 
−
|-
 
−
|in
 
−
|Bus
 
−
|string
 
−
|
 
−
|path to bus device (/dev/ttyS0)
 
−
|-
 
−
|in
 
−
|UnitID
 
−
|byte
 
−
|
 
−
|device bus address (0-247)
 
−
|-
 
−
|in
 
−
|OfsAdr
 
−
|word
 
−
|
 
−
|register address (1-9999)
 
−
|-
 
−
|in
 
−
|Timeout
 
−
|byte
 
−
|
 
−
|timeout in seconds
 
−
|-
 
−
|out
 
−
|Q
 
−
|word
 
−
|
 
−
|readed value
 
−
|}
 
−
 
 
−
==== MODBUS_RTU_R_INPUT ====
 
−
Reads one input register
 
−
{| class="wikitable"
 
−
| colspan="5" |[[#Asynchronous operations|Asynchronous interface]]
 
−
|-
 
−
|in
 
−
|Bus
 
−
|string
 
−
|
 
−
|path to bus device (/dev/ttyS0)
 
−
|-
 
−
|in
 
−
|UnitID
 
−
|byte
 
−
|
 
−
|device bus address (0-247)
 
−
|-
 
−
|in
 
−
|OfsAdr
 
−
|word
 
−
|
 
−
|register address (1-9999)
 
−
|-
 
−
|in
 
−
|Timeout
 
−
|byte
 
−
|
 
−
|timeout in seconds
 
−
|-
 
−
|out
 
−
|Q
 
−
|word
 
−
|
 
−
|readed value
 
−
|}
 
−
 
 
−
==== MODBUS_RTU_W_COIL ====
 
−
Writes value to one coil register
 
−
{| class="wikitable"
 
−
| colspan="5" |[[#Asynchronous operations|Asynchronous interface]]
 
−
|-
 
−
|in
 
−
|Bus
 
−
|string
 
−
|
 
−
|path to bus device (/dev/ttyS0)
 
−
|-
 
−
|in
 
−
|UnitID
 
−
|byte
 
−
|
 
−
|device bus address (0-247)
 
−
|-
 
−
|in
 
−
|OfsAdr
 
−
|word
 
−
|
 
−
|register address (1-9999)
 
−
|-
 
−
|in
 
−
|Timeout
 
−
|byte
 
−
|
 
−
|timeout in seconds
 
−
|-
 
−
|in
 
−
|VAL
 
−
|bool
 
−
|
 
−
|value to write
 
−
|}
 
−
 
 
−
==== MODBUS_RTU_W_HOLDING ====
 
−
Writes value to one holding register
 
−
{| class="wikitable"
 
−
| colspan="5" |[[#Asynchronous operations|Asynchronous interface]]
 
−
|-
 
−
|in
 
−
|Bus
 
−
|string
 
−
|
 
−
|path to bus device (/dev/ttyS0)
 
−
|-
 
−
|in
 
−
|UnitID
 
−
|byte
 
−
|
 
−
|device bus address (0-247)
 
−
|-
 
−
|in
 
−
|OfsAdr
 
−
|word
 
−
|
 
−
|register address (1-9999)
 
−
|-
 
−
|in
 
−
|Timeout
 
−
|byte
 
−
|
 
−
|timeout in seconds
 
−
|-
 
−
|in
 
−
|VAL
 
−
|word
 
−
|
 
−
|value to write
 
−
|}
 
−
 
 
−
== IpWatchdog library ==
 
−
 
 
−
=== ARP ===
 
−
 
 
−
==== IPWDG_ARP ====
 
−
Returns ARP ping status of given ip address
 
−
{| class="wikitable"
 
−
| colspan="5" |[[#Asynchronous operations|Asynchronous interface]]
 
−
|-
 
−
|in
 
−
|IP_ADDR
 
−
|string
 
−
|
 
−
|ip address
 
−
|-
 
−
|in
 
−
|TMO_S
 
−
|int
 
−
|
 
−
|timeout in seconds
 
−
|-
 
−
|out
 
−
|Q
 
−
|bool
 
−
|
 
−
|status
 
−
|}
 
−
 
 
−
=== ICMP ===
 
−
 
 
−
==== IPWDG_ICMP ====
 
−
Returns ICMP ping status of given ip address
 
−
{| class="wikitable"
 
−
| colspan="5" |[[#Asynchronous operations|Asynchronous interface]]
 
−
|-
 
−
|in
 
−
|IP_ADDR
 
−
|string
 
−
|
 
−
|ip address
 
−
|-
 
−
|in
 
−
|TMO_S
 
−
|int
 
−
|
 
−
|timeout in seconds
 
−
|-
 
−
|out
 
−
|Q
 
−
|bool
 
−
|
 
−
|status
 
−
|}
 
−
 
 
−
== Datalogger library ==
 
−
 
 
−
=== Logging ===
 
−
 
 
−
==== DATALOGGER_W_BOOL ====
 
−
Writes binary value to datalogger
 
−
{| class="wikitable"
 
−
| colspan="5" |[[#Asynchronous operations|Asynchronous interface]]
 
−
|-
 
−
|in
 
−
|KEY
 
−
|string
 
−
|
 
−
|key for logged value
 
−
|-
 
−
|in
 
−
|VALUE
 
−
|bool
 
−
|
 
−
|value
 
−
|}
 
−
 
 
−
== Utility library ==
 
−
 
 
−
=== Generators ===
 
−
 
 
−
==== GEN_PULSE ====
 
−
Generates unite pulse
 
−
{| class="wikitable"
 
−
|in
 
−
|T_PER
 
−
|time
 
−
|
 
−
|signal period
 
−
|-
 
−
|out
 
−
|Q
 
−
|bool
 
−
|
 
−
|output value
 
−
|}
 
−
 
 
−
==== GEN_RECT ====
 
−
Generates rectangle signal
 
−
{| class="wikitable"
 
−
|in
 
−
|T_UP
 
−
|time
 
−
|
 
−
|duration of high value
 
−
|-
 
−
|in
 
−
|T_DOWN
 
−
|time
 
−
|
 
−
|duration of low value
 
−
|-
 
−
|out
 
−
|Q
 
−
|bool
 
−
|
 
−
|output value
 
−
|}
 
−
 
 
−
==== GEN_SQ ====
 
−
Generates square signal
 
−
{| class="wikitable"
 
−
|in
 
−
|T_SQ
 
−
|time
 
−
|
 
−
|duration of high or low value
 
−
|-
 
−
|out
 
−
|Q
 
−
|bool
 
−
|
 
−
|output value
 
−
|}
 
  
−
== Program library ==
+
|content-right=
−
 
+
''' '''
−
=== Program informations ===
+
* [[Error Codes | Error Codes for Asynchronous Operations]]
−
 
+
}}
−
==== PROGRAM_INFO ====
 
−
Returns informations about running program
 
−
{| class="wikitable"
 
−
|out
 
−
|CYCLE
 
−
|int
 
−
|
 
−
|actual cycle number
 
−
|-
 
−
|out
 
−
|RUN_CYCLES
 
−
|int
 
−
|
 
−
|cycles to run (0 - infinite loop)
 
−
|-
 
−
|out
 
−
|MS_PER_CYCLE
 
−
|int
 
−
|
 
−
|minimum cycle duration
 
−
|-
 
−
|out
 
−
|OVERRUN
 
−
|bool
 
−
|
 
−
|previous cycle was longer than requested minimal value
 
−
|}
 

Latest revision as of 04:58, 16 July 2025

Introduction

Standard IEC 61131-3 library

Documentation to standard ilbrary is on http://www.gebautomation.com/help/index.jsp?topic=%2Fcom.gebautomation.help%2Fhtml%2Ftech%2Fstdlib.html .

Functions and function blcoks from standard library works properly also in Simulator.

Metel IEC 61131-3 libraries

To show Metel libraries in IDE, must be select project device to "iplog_gama" and build it.

Only some functions and function blocks from Metel libraries will works in Simulator.

Asynchronous operations

Some long-time operations (reading from MODBUS) can not be done in one logic cycle.

To solve that, use all asynchronous function blocks in Metel libraries this general interface:

in EXEC bool r_edge rising edge starts new operation
out BUSY bool indicates that operation is pending
out ERR bool indicates some error occurs
out ERR_ID word identifies occured error by unique code
out VALID bool indicates success operation and valid output

List of Libraries

Libraries for METEL IEC 61131-3 IDE

Utility for METEL IEC 61131-3 IDE

Error codes