plcopen/definitions.py
author Andrey Skvortsov <andrej.skvortzov@gmail.com>
Wed, 24 Aug 2016 13:08:13 +0300
changeset 1520 6addc58f63a6
parent 1511 91538d0c242c
child 1625 be3f68731798
permissions -rw-r--r--
add initialization tick time on Beremiz start

This fixes issue #6
1511
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
     1
#!/usr/bin/env python
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
     2
# -*- coding: utf-8 -*-
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
     3
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
     4
# This file is part of Beremiz, a Integrated Development Environment for
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
     5
# programming IEC 61131-3 automates supporting plcopen standard and CanFestival.
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
     6
#
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
     7
# Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
     8
#
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
     9
# See COPYING file for copyrights details.
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    10
#
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    11
# This program is free software; you can redistribute it and/or
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    12
# modify it under the terms of the GNU General Public License
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    13
# as published by the Free Software Foundation; either version 2
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    14
# of the License, or (at your option) any later version.
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    15
#
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    16
# This program is distributed in the hope that it will be useful,
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    17
# but WITHOUT ANY WARRANTY; without even the implied warranty of
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    18
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    19
# GNU General Public License for more details.
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    20
#
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    21
# You should have received a copy of the GNU General Public License
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    22
# along with this program; if not, write to the Free Software
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    23
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    24
91538d0c242c add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1412
diff changeset
    25
1390
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    26
from os.path import join, split, realpath
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    27
sd = split(realpath(__file__))[0]
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    28
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    29
# Override gettext _ in this module
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    30
# since we just want string to be added to dictionnary
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    31
# but translation should happen here
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    32
_ = lambda x:x
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    33
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    34
LANGUAGES = ["IL","ST","FBD","LD","SFC"]
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    35
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    36
LOCATIONDATATYPES = {"X" : ["BOOL"],
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    37
                     "B" : ["SINT", "USINT", "BYTE", "STRING"],
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    38
                     "W" : ["INT", "UINT", "WORD", "WSTRING"],
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    39
                     "D" : ["DINT", "UDINT", "REAL", "DWORD"],
1411
805d13d216c0 Fixed POU paste exception
Edouard Tisserant
parents: 1390
diff changeset
    40
                     "L" : ["LINT", "ULINT", "LREAL", "LWORD"]}
1390
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    41
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    42
#-------------------------------------------------------------------------------
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    43
#                        Function Block Types definitions
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    44
#-------------------------------------------------------------------------------
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    45
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    46
StdTC6Libs = [(_("Standard function blocks"),  join(sd, "Standard_Function_Blocks.xml")),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    47
              (_("Additional function blocks"),join(sd, "Additional_Function_Blocks.xml"))]
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    48
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    49
StdFuncsCSV = join(sd,"iec_std.csv")
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    50
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    51
# FIXME : since std fb now loaded from TC6 file, is that still necessary ?
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    52
StdBlockComments = {
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    53
    "SR": _("SR bistable\nThe SR bistable is a latch where the Set dominates."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    54
    "RS": _("RS bistable\nThe RS bistable is a latch where the Reset dominates."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    55
    "SEMA": _("Semaphore\nThe semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    56
    "R_TRIG": _("Rising edge detector\nThe output produces a single pulse when a rising edge is detected."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    57
    "F_TRIG": _("Falling edge detector\nThe output produces a single pulse when a falling edge is detected."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    58
    "CTU": _("Up-counter\nThe up-counter can be used to signal when a count has reached a maximum value."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    59
    "CTD": _("Down-counter\nThe down-counter can be used to signal when a count has reached zero, on counting down from a preset value."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    60
    "CTUD": _("Up-down counter\nThe up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    61
    "TP": _("Pulse timer\nThe pulse timer can be used to generate output pulses of a given time duration."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    62
    "TON": _("On-delay timer\nThe on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    63
    "TOF": _("Off-delay timer\nThe off-delay timer can be used to delay setting an output false, for fixed period after input goes false."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    64
    "RTC": _("Real time clock\nThe real time clock has many uses including time stamping, setting dates and times of day in batch reports, in alarm messages and so on."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    65
    "INTEGRAL": _("Integral\nThe integral function block integrates the value of input XIN over time."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    66
    "DERIVATIVE": _("Derivative\nThe derivative function block produces an output XOUT proportional to the rate of change of the input XIN."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    67
    "PID": _("PID\nThe PID (proportional, Integral, Derivative) function block provides the classical three term controller for closed loop control."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    68
    "RAMP": _("Ramp\nThe RAMP function block is modelled on example given in the standard."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    69
    "HYSTERESIS": _("Hysteresis\nThe hysteresis function block provides a hysteresis boolean output driven by the difference of two floating point (REAL) inputs XIN1 and XIN2."),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    70
}
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    71
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    72
for block_type in ["CTU", "CTD", "CTUD"]:
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    73
    for return_type in ["DINT", "LINT", "UDINT", "ULINT"]:
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    74
        StdBlockComments["%s_%s" % (block_type, return_type)] = StdBlockComments[block_type]
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    75
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    76
def GetBlockInfos(pou):
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    77
    infos = pou.getblockInfos()
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    78
    # FIXME : as well
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    79
    infos["comment"] = StdBlockComments[infos["name"]]
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    80
    infos["inputs"] = [
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    81
        (var_name, var_type, "rising")
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    82
        if var_name in ["CU", "CD"]
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    83
        else (var_name, var_type, var_modifier)
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    84
        for var_name, var_type, var_modifier in infos["inputs"]]
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    85
    return infos
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    86
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    87
#-------------------------------------------------------------------------------
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    88
#                           Data Types definitions
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    89
#-------------------------------------------------------------------------------
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    90
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    91
"""
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    92
Ordored list of common data types defined in the IEC 61131-3
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    93
Each type is associated to his direct parent type. It defines then a hierarchy
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    94
between type that permits to make a comparison of two types
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    95
"""
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    96
TypeHierarchy_list = [
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    97
    ("ANY", None),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    98
    ("ANY_DERIVED", "ANY"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
    99
    ("ANY_ELEMENTARY", "ANY"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   100
    ("ANY_MAGNITUDE", "ANY_ELEMENTARY"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   101
    ("ANY_BIT", "ANY_ELEMENTARY"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   102
    ("ANY_NBIT", "ANY_BIT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   103
    ("ANY_STRING", "ANY_ELEMENTARY"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   104
    ("ANY_DATE", "ANY_ELEMENTARY"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   105
    ("ANY_NUM", "ANY_MAGNITUDE"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   106
    ("ANY_REAL", "ANY_NUM"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   107
    ("ANY_INT", "ANY_NUM"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   108
    ("ANY_SINT", "ANY_INT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   109
    ("ANY_UINT", "ANY_INT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   110
    ("BOOL", "ANY_BIT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   111
    ("SINT", "ANY_SINT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   112
    ("INT", "ANY_SINT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   113
    ("DINT", "ANY_SINT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   114
    ("LINT", "ANY_SINT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   115
    ("USINT", "ANY_UINT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   116
    ("UINT", "ANY_UINT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   117
    ("UDINT", "ANY_UINT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   118
    ("ULINT", "ANY_UINT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   119
    ("REAL", "ANY_REAL"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   120
    ("LREAL", "ANY_REAL"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   121
    ("TIME", "ANY_MAGNITUDE"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   122
    ("DATE", "ANY_DATE"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   123
    ("TOD", "ANY_DATE"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   124
    ("DT", "ANY_DATE"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   125
    ("STRING", "ANY_STRING"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   126
    ("BYTE", "ANY_NBIT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   127
    ("WORD", "ANY_NBIT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   128
    ("DWORD", "ANY_NBIT"),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   129
    ("LWORD", "ANY_NBIT")
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   130
    #("WSTRING", "ANY_STRING") # TODO
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   131
]
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   132
1412
50192dd2f5ff Added plcopen.definitions.DefaultType, set to INT.
Edouard Tisserant
parents: 1411
diff changeset
   133
DefaultType = "DINT"
50192dd2f5ff Added plcopen.definitions.DefaultType, set to INT.
Edouard Tisserant
parents: 1411
diff changeset
   134
1390
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   135
DataTypeRange_list = [
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   136
    ("SINT", (-2**7, 2**7 - 1)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   137
    ("INT", (-2**15, 2**15 - 1)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   138
    ("DINT", (-2**31, 2**31 - 1)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   139
    ("LINT", (-2**31, 2**31 - 1)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   140
    ("USINT", (0, 2**8 - 1)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   141
    ("UINT", (0, 2**16 - 1)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   142
    ("UDINT", (0, 2**31 - 1)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   143
    ("ULINT", (0, 2**31 - 1))
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   144
]
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   145
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   146
ANY_TO_ANY_FILTERS = {
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   147
    "ANY_TO_ANY":[
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   148
        # simple type conv are let as C cast
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   149
        (("ANY_INT","ANY_BIT"),("ANY_NUM","ANY_BIT")),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   150
        (("ANY_REAL",),("ANY_REAL",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   151
        # REAL_TO_INT
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   152
        (("ANY_REAL",),("ANY_SINT",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   153
        (("ANY_REAL",),("ANY_UINT",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   154
        (("ANY_REAL",),("ANY_BIT",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   155
        # TO_TIME
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   156
        (("ANY_INT","ANY_BIT"),("ANY_DATE","TIME")),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   157
        (("ANY_REAL",),("ANY_DATE","TIME")),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   158
        (("ANY_STRING",), ("ANY_DATE","TIME")),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   159
        # FROM_TIME
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   160
        (("ANY_DATE","TIME"), ("ANY_REAL",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   161
        (("ANY_DATE","TIME"), ("ANY_INT","ANY_NBIT")),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   162
        (("TIME",), ("ANY_STRING",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   163
        (("DATE",), ("ANY_STRING",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   164
        (("TOD",), ("ANY_STRING",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   165
        (("DT",), ("ANY_STRING",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   166
        # TO_STRING
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   167
        (("BOOL",), ("ANY_STRING",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   168
        (("ANY_BIT",), ("ANY_STRING",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   169
        (("ANY_REAL",), ("ANY_STRING",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   170
        (("ANY_SINT",), ("ANY_STRING",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   171
        (("ANY_UINT",), ("ANY_STRING",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   172
        # FROM_STRING
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   173
        (("ANY_STRING",), ("BOOL",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   174
        (("ANY_STRING",), ("ANY_BIT",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   175
        (("ANY_STRING",), ("ANY_SINT",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   176
        (("ANY_STRING",), ("ANY_UINT",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   177
        (("ANY_STRING",), ("ANY_REAL",))],
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   178
    "BCD_TO_ANY":[
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   179
        (("BYTE",),("USINT",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   180
        (("WORD",),("UINT",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   181
        (("DWORD",),("UDINT",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   182
        (("LWORD",),("ULINT",))],
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   183
    "ANY_TO_BCD":[
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   184
        (("USINT",),("BYTE",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   185
        (("UINT",),("WORD",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   186
        (("UDINT",),("DWORD",)),
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   187
        (("ULINT",),("LWORD",))]
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   188
}
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   189
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   190
# remove gettext override
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents:
diff changeset
   191
del _