コード例 #1
0
    def getClosed(self):
        #return self.closed
        if self.type == "source":
            retval = tagClient.readTags([self.tagName], "grid")
        elif self.type == "load":
            retval = tagClient.readTags([self.tagName], "load")
#        retval = not retval
        self.closed = retval

        return retval
コード例 #2
0
    def measurePower(self):
        print("currentTag in customer profile:")
        print(self.currentTag)
        currentvals = tagClient.readTags([self.currentTag],"load")
        print("voltageTag in customer profile:")
        print(self.voltageTag)
        
        voltagevals = tagClient.readTags([self.voltageTag],"load")
        print("measure power")
        power = currentvals * voltagevals
        print("measure finished")
 #       self.tagCache[self.powerTag] = (power, datetime.now())
        return power
コード例 #3
0
ファイル: resource.py プロジェクト: pyffpyff/ACMG_lastest
    def confirmrelaystate(self):
        conncheck = tagClient.readTags([self.relayTag], "grid")

        if conncheck == self.connected:
            return True
        else:
            print("relay state discrepancy found")
コード例 #4
0
ファイル: resource.py プロジェクト: pyffpyff/ACMG_lastest
    def connectSoft(self, mode, setpoint):
        ch = self.channelNumber

        if mode == "Vreg":
            tagClient.writeTags([self.vSetpointTag], [0], "source")
            tags = [
                self.battSelectTag, self.powerSelectTag, self.swingSelectTag
            ]
            tagClient.writeTags([tags], [False, False, True], "source")
            tagClient.writeTags([self.relayTag], [True], "source")
            tagClient.writeTags([self.vSetpointTag], [setpoint], "source")
        elif mode == "Preg":
            tagClient.writeTags([self.pSetpointTag], [0], "source")
            tags = [
                self.battSelectTag, self.powerSelectTag, self.swingSelectTag
            ]
            tagClient.writeTags([tags], [False, True, False], "source")
            tagClient.writeTags([self.relayTag], [True], "source")
            self.ramp(setpoint)
        elif mode == "BattCharge":
            tags = [self.pSetpointTag, self.battSelectTag]
            tagClient.writeTags([tags], [0, True], "source")
            tag = "SOURCE_{d}_BatteryReqCharge".format(d=self.channelNumber)
            tagClient.writeTags([tag], [True], "source")
            tagClient.writeTags([self.pSetpointTag], [setpoint], "source")
        else:
            print("CHANNEL{ch} received a bad mode request: {mode}".format(
                ch=self.channelNumber, mode=mode))

        if tagClient.readTags([self.relayTag], "source"):
            self.connected = True
            return True
        else:
            self.connected = False
            return False
コード例 #5
0
ファイル: resource.py プロジェクト: pyffpyff/ACMG_lastest
    def ramp(self, setpoint, maxStep=.5, disconnectWhenFinished=False):
        tag = self.pSetpointTag
        currentSetpoint = tagClient.readTags([tag], "source")
        diff = setpoint - currentSetpoint
        if diff > maxStep:
            currentSetpoint += maxStep
        elif diff < -maxStep:
            currentSetpoint -= maxStep
        else:
            currentSetpoint += diff
        tagClient.writeTags([tag], [currentSetpoint], "source")

        if abs(diff) > .001:
            #schedule a callback, allowing some time for actuation
            sched = datetime.now() + timedelta(seconds=1.5)
            Core.schedule(sched, self.ramp)
            print("{me} is scheduling another ramp call: {cs}".format(
                me=self.channelNumber, cs=currentSetpoint))
            if disconnectWhenFinished == True and setpoint == 0:
                print("ramp with disconnect completed, disconnecting {me}".
                      format(me=self.channelNumber))
                self.disconnect()
        else:
            print("{me} is done ramping to {set}".format(me=self.name,
                                                         set=setpoint))
コード例 #6
0
ファイル: resource.py プロジェクト: pyffpyff/ACMG_lastest
 def waitForSettle(self):
     current = tagClient.readTags([self.regItag], "source")
     if abs(current) < .01:
         self.connected = self.disconnect()
     else:
         now = datetime.now()
         Core.schedule(now + timedelta(seconds=1), self.waitForSettle)
コード例 #7
0
    def sumCurrents(self):
        inftags = []
        for edge in self.interzonaledges:
            inftags.append(edge.currentTag)
## still need more consideration about classify tag
        if len(inftags) > 0:
            if self.edge == 0 or 1 or 2:
                infcurrents = tagClient.readTags(inftags, "grid")
            else:
                infcurrents = tagClient.readTags(inftags, "load")
            print("inftags: {inf}".format(inf=inftags))

        total = 0
        for edge in self.interzonaledges:
            if edge.startNode is self:
                total -= infcurrents.get(edge.currentTag)
            elif edge.endNode is self:
                total += infcurrents.get(edge.currentTag)
            else:
                pass
        return total
コード例 #8
0
    def sumCurrents(self):
        inftags = []
        for edge in self.edges:
            if edge.currentTag is not None and len(edge.currentTag) > 0:
                inftags.append(edge.currentTag)

        if len(inftags) > 0:
            if self.branch == "MAIN":
                infcurrents = tagClient.readTags(inftags, "grid")
            else:
                infcurrents = tagClient.readTags(inftags, "load")

        total = 0
        for edge in self.edges:
            if edge.currentTag is not None and len(edge.currentTag) > 0:
                if edge.startNode is self:
                    total -= infcurrents.get(edge.currentTag)
                elif edge.endNode is self:
                    total += infcurrents.get(edge.currentTag)
                else:
                    pass

        return total
コード例 #9
0
ファイル: resource.py プロジェクト: pyffpyff/ACMG_lastest
 def getRegV(self):
     tagName = self.regVtag
     #call to CIP wrapper
     value = tagClient.readTags([tagName], "source")
     return value
コード例 #10
0
 def getChargeVoltage(self):
     return tagClient.readTags([self.chargeVoltageTag],"grid")
コード例 #11
0
 def getVoltage(self):
     return tagClient.readTags([self.voltageTag], "load")
コード例 #12
0
 def measureVoltage(self):
     tag = self.voltageTag
     tagval = tagClient.readTags([tag],"load")
     self.tagCache[tag] = (tagval, datetime.now())
     return tagval
コード例 #13
0
 def connectCustomer(self):
     tagClient.writeTags([self.relayTag],[True],"load")
     print("connect customer")
     print("relay {relaytag} status: {status}".format(relaytag = self.relayTag, status = tagClient.readTags([self.relayTag],"load")))
コード例 #14
0
 def measureCurrent(self):
     tag = self.currentTag
     tagval = tagClient.readTags([tag],"load")
     self.tagCache[tag] = (tagval, datetime.now())
     return tagval
コード例 #15
0
ファイル: resource.py プロジェクト: pyffpyff/ACMG_lastest
 def addVoltageOffset(self, deltavoffset):
     voffset = tagClient.readTags([self.noLoadVoltage], "source")
     voffset += deltavoffset
     tagClient.writeTags([self.noLoadVoltage], [voffset], "source")
コード例 #16
0
 def getUnregV(self):
     tagName = self.unregVtag
     value = tagClient.readTags([tagName])
     return value
コード例 #17
0
ファイル: resource.py プロジェクト: pyffpyff/ACMG_lastest
 def connect(self):
     tagClient.writeTags([self.relayTag], [True], "grid")
     #read tag to confirm write success
     self.connected = tagClient.readTags([self.relayTag], "grid")
     #self.connected = True
     return self.connected
コード例 #18
0
 def getChargeCurrent(self):
     return tagClient.readTags([self.chargeCurrentTag],"grid")
コード例 #19
0
ファイル: resource.py プロジェクト: pyffpyff/ACMG_lastest
 def disconnect(self):
     #disconnect power from the source
     tagClient.writeTags([self.relayTag], [False], "grid")
     #read tag to confirm write success
     print(self.relayTag)
     return tagClient.readTags([self.relayTag], "grid")
コード例 #20
0
 def getCurrent(self):
     if self.branch == "MAIN":
         return tagClient.readTags([self.currentTag], "grid")
     else:
         return tagClient.readTags([self.currentTag], "load")
コード例 #21
0
ファイル: test.py プロジェクト: pyffpyff/ACMGAgent
 def measureCurrent(self):
     #    print(self.currentTag)
     return tagClient.readTags([self.currentTag], "load")
コード例 #22
0
ファイル: test.py プロジェクト: pyffpyff/ACMGAgent
 def measureVoltage(self):
     #    print (self.voltageTag)
     return tagClient.readTags([self.voltageTag], "load")
コード例 #23
0
ファイル: test.py プロジェクト: pyffpyff/ACMGAgent
 def measurePF(self):
     return tagClient.readTags([powerfactorTag], "grid")
コード例 #24
0
 def getRegI(self):
     tagName = self.regItag
     value = tagClient.readTags([tagName])
     return value
コード例 #25
0
ファイル: resource.py プロジェクト: pyffpyff/ACMG_lastest
 def getUnregI(self):
     tagName = self.unregItag
     value = tagClient.readTags([tagName], "source")
     return value
コード例 #26
0
 def measurePF(self):
     tag = self.powerfactorTag
     tagval = tagClient.readTags([tag],"load")
     self.tagCache[tag] = (tagval, datetime.now())
     return tagval