Exemplo n.º 1
0
Arquivo: gui.py Projeto: wulmer/pyads
    def read(self, adsAdr):
        """
        Read from plc address and write in self.currentValue,
        call pyads.gui.mapAdsToGui() to show the value on
        the connected gui objects 

        :param pyads.structs.AmsAdr adsAdr: address to the ADS device
        :return: current value

        """
        indexgroup = INDEXGROUP_MEMORYBIT if self.plcDataType == PLCTYPE_BOOL else INDEXGROUP_MEMORYBYTE
            
        (err, value) = adsSyncReadReq(adsAdr, indexgroup, self.plcAdr, self.plcDataType)
        
        if err:
            raise Exception("error reading from address %i (%s). error number %i" % (self.plcAdr, self.name, err))
        
        #Wenn es sich um eine Liste oder ein Tuple handelt, dann einzelne Objekte schreiben*) 
        if isinstance(self.guiObjects, (list, tuple)):
            for o in self.guiObjects:
                self.mapAdsToGui(o, value)
        else:
            self.mapAdsToGui(self.guiObjects, value)
        
        self.currentValue = value
        return value
Exemplo n.º 2
0
 def read_from_plc(self, address, datatype):
     index_group = INDEXGROUP_MEMORYBIT if datatype == PLCTYPE_BOOL else INDEXGROUP_MEMORYBYTE
     (errcode, value) = adsSyncReadReq(self.ams_addr, index_group, address, datatype)
     if errcode:
         raise ADSError("Reading from address %i (ErrorCode %i)" % (address, errcode))
     return value