Пример #1
0
    def config_pmu(self):
        """
        Sets the ConfigFrame2 of the PMU

        :return: None
        """

        self.cfg = ConfigFrame2(pmu_id_code=self.pmu_idx[0],  # PMU_ID
                           time_base=1000000,  # TIME_BASE
                           num_pmu=1,  # Number of PMUs included in data frame
                           station_name=self.bus_name[0],  # Station name
                           id_code=self.pmu_idx[0],  # Data-stream ID(s)
                           data_format=(True, True, True, True),  # Data format - POLAR; PH - REAL; AN - REAL; FREQ - REAL;
                           phasor_num=1,  # Number of phasors
                           analog_num=1,  # Number of analog values
                           digital_num=1,  # Number of digital status words
                            channel_names=["V_PHASOR", "ANALOG1", "BREAKER 1 STATUS",
                            "BREAKER 2 STATUS", "BREAKER 3 STATUS", "BREAKER 4 STATUS", "BREAKER 5 STATUS",
                            "BREAKER 6 STATUS", "BREAKER 7 STATUS", "BREAKER 8 STATUS", "BREAKER 9 STATUS",
                            "BREAKER A STATUS", "BREAKER B STATUS", "BREAKER C STATUS", "BREAKER D STATUS",
                            "BREAKER E STATUS", "BREAKER F STATUS", "BREAKER G STATUS"],  # Channel Names
                           ph_units=[(0, 'v')],  # Conversion factor for phasor channels - (float representation, not important)
                           an_units=[(1, 'pow')],  # Conversion factor for analog channels
                           dig_units=[(0x0000, 0xffff)],  # Mask words for digital status words
                           f_nom=60.0,  # Nominal frequency
                           cfg_count=1,  # Configuration change count
                           data_rate=30)  # Rate of phasor data transmission)

        self.hf = HeaderFrame(self.pmu_idx[0],  # PMU_ID
                              "MiniPMU <{name}> {pmu_idx}".format(name=self.name, pmu_idx = self.pmu_idx))  # Header Message

        self.pmu.set_configuration(self.cfg)
        self.pmu.set_header(self.hf)
Пример #2
0
cfg_hex_string = "aa3101c61e36448527f056071098000f4240000153746174696f6e2041202020202020201e360004000400030001564120" \
                 "20202020202020202020202020564220202020202020202020202020205643202020202020202020202020202049312020" \
                 "202020202020202020202020414e414c4f4731202020202020202020414e414c4f4732202020202020202020414e414c4f" \
                 "4733202020202020202020425245414b4552203120535441545553425245414b4552203220535441545553425245414b45" \
                 "52203320535441545553425245414b4552203420535441545553425245414b4552203520535441545553425245414b4552" \
                 "203620535441545553425245414b4552203720535441545553425245414b4552203820535441545553425245414b455220" \
                 "3920535441545553425245414b4552204120535441545553425245414b4552204220535441545553425245414b45522043" \
                 "20535441545553425245414b4552204420535441545553425245414b4552204520535441545553425245414b4552204620" \
                 "535441545553425245414b4552204720535441545553000df847000df847000df8470100b2d00000000101000001020000" \
                 "010000ffff00000016001ed5d1"

cfg = ConfigFrame2(7734, 1000000, 1, "Station A", 7734, (False, False, True, False), 4, 3, 1,
                   ["VA", "VB", "VC", "I1", "ANALOG1", "ANALOG2", "ANALOG3", "BREAKER 1 STATUS",
                    "BREAKER 2 STATUS", "BREAKER 3 STATUS", "BREAKER 4 STATUS", "BREAKER 5 STATUS",
                    "BREAKER 6 STATUS", "BREAKER 7 STATUS", "BREAKER 8 STATUS", "BREAKER 9 STATUS",
                    "BREAKER A STATUS", "BREAKER B STATUS", "BREAKER C STATUS", "BREAKER D STATUS",
                    "BREAKER E STATUS", "BREAKER F STATUS", "BREAKER G STATUS"],
                   [(915527, "v"), (915527, "v"), (915527, "v"), (45776, "i")],
                   [(1, "pow"), (1, "rms"), (1, "peak")], [(0x0000, 0xffff)], 60, 22, 30,
                   1149577200, (463000, "-", False, True, 6))

# cfg.set_soc(1149577200)
# cfg.set_frasec(463000, "-", False, True, 6)

cfg_hex_result = str(binascii.hexlify(cfg.convert2bytes()), "utf-8")
print(cfg_hex_result)

#A mensagem aparece com Assertion Error, ou seja, só aparece quando a comparacao for falsa

assert cfg_hex_result == cfg_hex_string, "Configuration Frame v2 Error."
pmu.logger.setLevel("DEBUG")

cfg = ConfigFrame2(
    1410,  # PMU_ID
    1000000,  # TIME_BASE
    1,  # Number of PMUs included in data frame
    "Random Station",  # Station name
    1410,  # Data-stream ID(s)
    (True, True, True,
     True),  # Data format - POLAR; PH - REAL; AN - REAL; FREQ - REAL;
    3,  # Number of phasors
    1,  # Number of analog values
    1,  # Number of digital status words
    [
        "VA", "VB", "VC", "ANALOG1", "BREAKER 1 STATUS", "BREAKER 2 STATUS",
        "BREAKER 3 STATUS", "BREAKER 4 STATUS", "BREAKER 5 STATUS",
        "BREAKER 6 STATUS", "BREAKER 7 STATUS", "BREAKER 8 STATUS",
        "BREAKER 9 STATUS", "BREAKER A STATUS", "BREAKER B STATUS",
        "BREAKER C STATUS", "BREAKER D STATUS", "BREAKER E STATUS",
        "BREAKER F STATUS", "BREAKER G STATUS"
    ],  # Channel Names
    [
        (0, "v"), (0, "v"), (0, "v")
    ],  # Conversion factor for phasor channels - (float representation, not important)
    [(1, "pow")],  # Conversion factor for analog channels
    [(0x0000, 0xffff)],  # Mask words for digital status words
    50,  # Nominal frequency
    1,  # Configuration change count
    30)  # Rate of phasor data transmission)

pmu.set_configuration(cfg)
Пример #4
0
 cfg = ConfigFrame2(
     1,  # PMU_ID
     1000000,  # TIME_BASE
     1,  # Number of PMUs included in data frame
     "Edit Station",  # Station name
     33,  # Data-stream ID(s)
     (True, True, True,
      True),  # Data format - POLAR; PH - REAL; AN - REAL; FREQ - REAL;
     4,  # Number of phasors
     5,  # Number of analog values
     4,  # Number of digital status words
     [
         "VA", "VB", "VC", "VD", "ANALOG1", "ANALOG2", "ANALOG3", "ANALOG4",
         "ANALOG5", "BREAKER 01 STATUS", "BREAKER 02 STATUS",
         "BREAKER 03 STATUS", "BREAKER 04 STATUS", "BREAKER 05 STATUS",
         "BREAKER 06 STATUS", "BREAKER 07 STATUS", "BREAKER 08 STATUS",
         "BREAKER 09 STATUS", "BREAKER 0A STATUS", "BREAKER 0B STATUS",
         "BREAKER 0C STATUS", "BREAKER 0D STATUS", "BREAKER 0E STATUS",
         "BREAKER 0F STATUS", "BREAKER 0G STATUS", "BREAKER 11 STATUS",
         "BREAKER 12 STATUS", "BREAKER 13 STATUS", "BREAKER 14 STATUS",
         "BREAKER 15 STATUS", "BREAKER 16 STATUS", "BREAKER 17 STATUS",
         "BREAKER 18 STATUS", "BREAKER 19 STATUS", "BREAKER 1A STATUS",
         "BREAKER 1B STATUS", "BREAKER 1C STATUS", "BREAKER 1D STATUS",
         "BREAKER 1E STATUS", "BREAKER 1F STATUS", "BREAKER 1G STATUS",
         "BREAKER 21 STATUS", "BREAKER 22 STATUS", "BREAKER 23 STATUS",
         "BREAKER 24 STATUS", "BREAKER 25 STATUS", "BREAKER 26 STATUS",
         "BREAKER 27 STATUS", "BREAKER 28 STATUS", "BREAKER 29 STATUS",
         "BREAKER 2A STATUS", "BREAKER 2B STATUS", "BREAKER 2C STATUS",
         "BREAKER 2D STATUS", "BREAKER 2E STATUS", "BREAKER 2F STATUS",
         "BREAKER 2G STATUS", "BREAKER 31 STATUS", "BREAKER 32 STATUS",
         "BREAKER 33 STATUS", "BREAKER 34 STATUS", "BREAKER 35 STATUS",
         "BREAKER 36 STATUS", "BREAKER 37 STATUS", "BREAKER 38 STATUS",
         "BREAKER 39 STATUS", "BREAKER 3A STATUS", "BREAKER 3B STATUS",
         "BREAKER 3C STATUS", "BREAKER 3D STATUS", "BREAKER 3E STATUS",
         "BREAKER 3F STATUS", "BREAKER 3G STATUS"
     ],  # Channel Names
     [
         (0, "v"), (0, "v"), (0, "v"), (0, "v")
     ],  # Conversion factor for phasor channels - (float representation, not important)
     [(1, "pow"), (1, "pow"), (1, "pow"), (1, "pow"),
      (1, "pow")],  # Conversion factor for analog channels
     [(0x0000, 0xffff), (0x0000, 0xffff), (0x0000, 0xffff),
      (0x0000, 0xffff)],  # Mask words for digital status words
     50,  # Nominal frequency
     1,  # Configuration change count
     60)  # Rate of phasor data transmission)