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)
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)
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)