Package pyads :: Module constants
[hide private]
[frames] | no frames]

Source Code for Module pyads.constants

  1  # -*- coding: utf-8 -*- 
  2  ''' 
  3  Created on 25.06.2013 
  4  @author: lehmann 
  5  ''' 
  6   
  7  from ctypes import * 
  8   
  9  #SPS-Datentypen  
 10  PLCTYPE_BOOL = c_bool 
 11  PLCTYPE_BYTE = c_byte 
 12  PLCTYPE_DATE = c_int32  
 13  PLCTYPE_DINT = c_int32 
 14  PLCTYPE_DT = c_int32  
 15  PLCTYPE_DWORD = c_int32  
 16  PLCTYPE_INT = c_int16 
 17  PLCTYPE_LREAL = c_double 
 18  PLCTYPE_REAL = c_float 
 19  PLCTYPE_SINT = c_int8 
 20  PLCTYPE_STRING = c_char 
 21  PLCTYPE_TIME = c_int32 
 22  PLCTYPE_TOD = c_int32 
 23  PLCTYPE_UDINT = c_uint32 
 24  PLCTYPE_UINT = c_uint16 
 25  PLCTYPE_USINT = c_uint8 
 26  PLCTYPE_WORD = c_int16  
 27   
 28  #Index Group 
 29  #READ_M - WRITE_M 
 30  INDEXGROUP_MEMORYBYTE = 0x4020    #:plc memory area (%M), offset means byte-offset 
 31  #READ_MX - WRITE_MX 
 32  INDEXGROUP_MEMORYBIT = 0x4021     #:plc memory area (%MX), offset means the bit adress, calculatedb by bytenumber * 8 + bitnumber 
 33  #PLCADS_IGR_RMSIZE 
 34  INDEXGROUP_MEMORYSIZE = 0x4025    #:size of the memory area in bytes 
 35  #PLCADS_IGR_RWRB 
 36  INDEXGROUP_RETAIN = 0x4030        #:plc retain memory area, offset means byte-offset 
 37  #PLCADS_IGR_RRSIZE 
 38  INDEXGROUP_RETAINSIZE = 0x4035    #:size of the retain area in bytes 
 39  #PLCADS_IGR_RWDB 
 40  INDEXGROUP_DATA = 0x4040          #:data area, offset means byte-offset 
 41  #PLCADS_IGR_RDSIZE 
 42  INDEXGROUP_DATASIZE = 0x4045      #:size of the data area in bytes 
 43   
 44  #PORTS 
 45  PORT_LOGGER = 100 
 46  PORT_EVENTLOGGER = 110 
 47  PORT_IO = 300 
 48  PORT_SPECIALTASK1 = 301 
 49  PORT_SPECIALTASK2 = 302 
 50  PORT_NC = 500 
 51  PORT_SPS1 = 801 
 52  PORT_SPS2 = 811 
 53  PORT_SPS3 = 821 
 54  PORT_SPS4 = 831 
 55  PORT_NOCKE = 900 
 56  PORT_SYSTEMSERVICE = 10000 
 57  PORT_SCOPE = 14000  
 58   
 59  #ADSState-constants 
 60  ADSSTATE_INVALID = 0 
 61  ADSSTATE_IDLE = 1 
 62  ADSSTATE_RESET = 2 
 63  ADSSTATE_INIT = 3 
 64  ADSSTATE_START = 4 
 65  ADSSTATE_RUN = 5 
 66  ADSSTATE_STOP = 6 
 67  ADSSTATE_SAVECFG = 7 
 68  ADSSTATE_LOADCFG = 8 
 69  ADSSTATE_POWERFAILURE = 9 
 70  ADSSTATE_POWERGOOD = 10 
 71  ADSSTATE_ERROR = 11 
 72  ADSSTATE_SHUTDOWN = 12 
 73  ADSSTATE_SUSPEND = 13 
 74  ADSSTATE_RESUME = 14 
 75  ADSSTATE_CONFIG = 15 
 76  ADSSTATE_RECONFIG = 16 
 77   
 78  #ADSTransmode 
 79  ADSTRANS_NOTRANS = 0 
 80  ADSTRANS_CLIENTCYCLE = 1 
 81  ADSTRANS_CLIENT1REQ = 2 
 82  ADSTRANS_SERVERCYCLE = 3 
 83  ADSTRANS_SERVERONCHA = 4 
 84   
85 -class SAdsVersion(Structure):
86 _fields_=[("version", c_byte), 87 ("revision", c_byte), 88 ("build", c_short)]
89 -class AdsVersion ():
90 ''' 91 @summary: contains version number, revision number, build number of the ADS-DLL 92 93 @ivar version: version number 94 @type version: int 95 96 @ivar revision: revision number 97 @type revision: int 98 99 @ivar build: build number 100 @type build: int 101 '''
102 - def __init__(self, stAdsVersion):
103 ''' 104 @param stAdsVersion: ctypes structure with the version info 105 @type stAdsVersion: adsPy.SAdsVersion 106 ''' 107 self.version = stAdsVersion.version 108 self.revision = stAdsVersion.revision 109 self.build = stAdsVersion.build
110
111 -class SAmsAddr(Structure):
112 ''' 113 @summary: structure containing the netId and port of an ADS device 114 ''' 115 _fields_ = [("netId", c_ubyte * 6), 116 ("port", c_ushort)]
117 -class AmsAddr():
118 ''' 119 @summary: wrapper for SAmsAddr-structure, needed to adress an ADS device 120 121 @type stAmsAddr: SAmsAddr 122 @ivar stAmsAddr: ctypes-structure SAmsAddr 123 124 @type errCode: int 125 @ivar errCode: error code 126 '''
127 - def __init__(self, errCode, stAmsAddr):
128 self.stAmsAddr = stAmsAddr 129 self.errCode = errCode
130
131 - def toString(self):
132 ''' 133 @summary: textual representation of the AMS adress 134 @rtype: string 135 @return: textual representation of the AMS adress 136 ''' 137 tmpList = [str(self.stAmsAddr.netId[i]) for i in range(sizeof(self.stAmsAddr.netId))] 138 netId = ".".join(tmpList) + ": "+ str(self.stAmsAddr.port) 139 return netId
140
141 - def port(self):
142 ''' 143 @summary: returns port number 144 ''' 145 return int(self.stAmsAddr.port)
146
147 - def setPort(self, value):
148 ''' 149 @summary: sets port number 150 ''' 151 self.stAmsAddr.port = c_ushort(value)
152
153 - def amsAddrStruct(self):
154 ''' 155 @summary: access to the c-types structure SAmsAddr 156 ''' 157 return self.stAmsAddr
158
159 - def setAdr(self, adrString):
160 ''' 161 @summary: Sets the AMS-adress according to the given string containing the IP-adress 162 163 @type adrString: string 164 @param adrString: ip-adress of an ADS device 165 ''' 166 a = adrString.split(".") 167 168 if not len(a)==6: 169 return 170 171 for i in range(len(a)): 172 self.stAmsAddr.netId[i] = c_ubyte(int(a[i]))
173
174 -class SAdsNotificationAttrib(Structure):
175 _fields_ = [("cbLength", c_ulong), 176 ("nTransMode", c_ulong), 177 ("nMaxDelay", c_ulong), 178 ("nCycleTime", c_ulong)]
179