BRPI0806143A2 - aparelhos para medição de multi-canal de eletricidade - Google Patents
aparelhos para medição de multi-canal de eletricidade Download PDFInfo
- Publication number
- BRPI0806143A2 BRPI0806143A2 BRPI0806143A BRPI0806143A2 BR PI0806143 A2 BRPI0806143 A2 BR PI0806143A2 BR PI0806143 A BRPI0806143 A BR PI0806143A BR PI0806143 A2 BRPI0806143 A2 BR PI0806143A2
- Authority
- BR
- Brazil
- Prior art keywords
- operable
- pic
- communication
- meter head
- electricity
- Prior art date
Links
- 230000005611 electricity Effects 0.000 title claims abstract description 48
- 238000004891 communication Methods 0.000 claims abstract description 83
- 230000002441 reversible effect Effects 0.000 claims abstract description 7
- 238000005265 energy consumption Methods 0.000 claims description 3
- 239000000835 fiber Substances 0.000 claims 1
- 238000001514 detection method Methods 0.000 abstract description 9
- 239000011800 void material Substances 0.000 description 60
- 208000036758 Postinfectious cerebellitis Diseases 0.000 description 46
- 238000005259 measurement Methods 0.000 description 32
- 239000000872 buffer Substances 0.000 description 22
- 238000010586 diagram Methods 0.000 description 21
- 230000007935 neutral effect Effects 0.000 description 10
- 230000007704 transition Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000005070 sampling Methods 0.000 description 5
- DCPDZFRGNJDWPP-UHFFFAOYSA-N 1,2,3,4,5-pentachloro-6-(2,4,5-trichlorophenyl)benzene Chemical compound C1=C(Cl)C(Cl)=CC(Cl)=C1C1=C(Cl)C(Cl)=C(Cl)C(Cl)=C1Cl DCPDZFRGNJDWPP-UHFFFAOYSA-N 0.000 description 4
- CYTYCFOTNPOANT-UHFFFAOYSA-N Perchloroethylene Chemical compound ClC(Cl)=C(Cl)Cl CYTYCFOTNPOANT-UHFFFAOYSA-N 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- JDZUWXRNKHXZFE-UHFFFAOYSA-N 1,2,3,4,5-pentachloro-6-(2,4,6-trichlorophenyl)benzene Chemical compound ClC1=CC(Cl)=CC(Cl)=C1C1=C(Cl)C(Cl)=C(Cl)C(Cl)=C1Cl JDZUWXRNKHXZFE-UHFFFAOYSA-N 0.000 description 3
- JPOPEORRMSDUIP-UHFFFAOYSA-N 1,2,4,5-tetrachloro-3-(2,3,5,6-tetrachlorophenyl)benzene Chemical compound ClC1=CC(Cl)=C(Cl)C(C=2C(=C(Cl)C=C(Cl)C=2Cl)Cl)=C1Cl JPOPEORRMSDUIP-UHFFFAOYSA-N 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000010363 phase shift Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000370 laser capture micro-dissection Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- JFIMDKGRGPNPRQ-UHFFFAOYSA-N 1,2,3,4,5-pentachloro-6-(2,3,4,5-tetrachlorophenyl)benzene Chemical compound ClC1=C(Cl)C(Cl)=CC(C=2C(=C(Cl)C(Cl)=C(Cl)C=2Cl)Cl)=C1Cl JFIMDKGRGPNPRQ-UHFFFAOYSA-N 0.000 description 1
- 241000725101 Clea Species 0.000 description 1
- 238000006066 Comins reaction Methods 0.000 description 1
- 101100496104 Mus musculus Clec2d gene Proteins 0.000 description 1
- 101100274534 Rattus norvegicus Clec2d11 gene Proteins 0.000 description 1
- 229910000831 Steel Inorganic materials 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010616 electrical installation Methods 0.000 description 1
- ZZUFCTLCJUWOSV-UHFFFAOYSA-N furosemide Chemical compound C1=C(Cl)C(S(=O)(=O)N)=CC(C(O)=O)=C1NCC1=CC=CO1 ZZUFCTLCJUWOSV-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 150000003071 polychlorinated biphenyls Chemical class 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012419 revalidation Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000002747 voluntary effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Arrangements For Transmission Of Measured Signals (AREA)
- Remote Monitoring And Control Of Power-Distribution Networks (AREA)
Abstract
APARELHOS PARA MEDIçãO DE MULTI-CANAL DE ELETRICIDADE. Em um aspecto, a invenção inclui um dispositivo para medir uso de eletricidade, incluindo: meio para desconexão remota por comunicação de linha de potência; meio para detecção de roubo de eletricidade; meio para detecção de fraude; e meio para detecção de tensão inversa. Em outro aspecto, a invenção inclui um aparelho para medição de multi-canal de eletricidade, incluindo: (a) uma cabeça de medidor operável para medir uso de eletricidade para uma pluralidade de linhas de consumidor de eletricidade; (b) um transponder operável para transmitir dados recebidos da cabeça de medidor por comunicação de linha de potência para um computador localizado remotamente, e para transmitir dados recebidos por comunicação de linha de potência do computador localizado remotamente para a cabeça de medidor; e (c) um módulo de controle de carga operável para atuar conexão e desconexão de cada um de uma pluralidade de relés, cada relé da pluralidade de relés correspondendo a uma da pluralidade de linhas de consumidor de eletricidade.
Description
"APARELHOS PARA MEDIÇÃO DE MULTI-C ANAL DE ELETRICIDADE"
Referência Cruzada a Pedidos Relacionados
Este pedido reivindica o benefício de Pedido de Patente Provisório US N0 60/737.580, depositado em 15 de novembro de 2005, Pedido de Patente Provisório US N0 60/739.375, depositado em 23 de novembro de 2005, e Pedido Provisório N0 60/813.901, depositado em 15 de junho de 2006, e é uma continuação em parte de Pedido de Patente US N0 11/431.849, depositado em 9 de maio de 2006, que é uma parte de Pedido de Patente US N0 11/030.417, depositado em 6 de janeiro de 2005 (agora Patente No. 7.054.770), que é uma parte de Pedido de Patente US N0 09/795.838, depositado em 28 de fevereiro de 2001 (agora Patente US N0 6.947.854). Os conteúdos inteiros de cada um desses pedidos estão incorporados aqui por referência.
Fundamento e Resumo
Uma concretização da presente invenção inclui um dispositivo de medição que está relacionado à família de medidores baseada em ASIC Quadlogic (veja Patente US N0 6.947.854, e Publicação de Pedido de Patente US N0 20060036388, os conteúdos inteiros de quais estão incorporados aqui por referência). Especificamente, esta concretização (referida aqui para conveniência como "Guarda de Energia") é um medidor de multi-canal que preferivelmente é capaz de prover muita da funcionalidade da família supracitada de medidores, e ademais provê as melhorias, características e componentes listados abaixo.
Usado em pelo menos uma concretização, um 'MiniCloset' é um dispositivo de medição de 24 canais que pode medir uso elétrico para até 24 clientes monofásicos, 12 clientes bifásicos, ou 8 clientes trifásicos. Preferivelmente conectado ao MiniCloset estão um ou mais Módulos de Controle de Carga (LCMs), discutidos abaixo. Guarda de energia inclui preferivelmente um módulo de cabeça de medidor de MiniCloset e dois LCMs montados em uma caixa de aço. Relês que permitem para um cliente de eletricidade ser remotamente desconectado e reconectado, junto com transformadores de corrente, também estão montados na caixa. Veja a Figura 1.
Na instalação, a linha de provisão de eletricidade de um cliente de eletricidade é derivada do alimentador elétrico principal, passado pelo aparelho de Guarda de Energia, e corre diretamente à casa do cliente. A construção e uso do Guarda de Energia serão aparentes àqueles qualificados na arte na revisão da descrição abaixo e figuras relacionadas. Código de fonte é provido no Apêndice anexo.
Medidores de Guarda de Energia preferivelmente são operáveis para prover:
(A) Desconexão/Reconexão Remota: O medidor suporta comunicação duplex total (bidirecional) por comunicação de linha de potência ("PLC") e pode ser equipado com relês operados remotamente (60 A, 100 A, ou 200 A) que permitem desconexão e reconexão de usuários elétricos remotamente.
(B) Prevenção de Roubo: O sistema é projetado com três características específicas para prevenir roubo. Primeira, um aparelho de Guarda de Energia preferivelmente é instalado em um poste de utilidade acima das linhas de média tensão, fazendo difícil para clientes alcançarem e fraudarem. Segunda, porque não há nenhum fio de sinal adicional com o sistema (isto é, toda a comunicação é pela linha de potência), quaisquer fios de comunicação cortados são imediatamente detectáveis. Quer dizer, se um fio de comunicação for cortado, o serviço é cortado, que é prontamente aparente. Uma terceira característica de prevenção de roubo é que o medidor pode ser usado para medir a energia de transformador a fim de validar os totais medidos de clientes individuais. Discrepâncias podem indicar roubo de energia.
(C) Detecção de Fraude: O Guarda de Energia preferivelmente provê dois modos de detecção de fraude óptica. Cada unidade contém uma luz que reflete contra um pequeno adesivo como espelho. A ausência desta luz reflexiva indica que a caixa foi aberta. Esta detecção desconectará automaticamente todos os clientes medidos por aquela unidade de Guarda de Energia. Além disso, se o invólucro de Guarda de Energia for aberto e luz ambiente entrar, isto também desconectará automaticamente todós os clientes medidos por aquela unidade de Guarda de Energia. Estes dois modos de detecção de fraude são comprometidos continuamente e múltiplas vezes alternadas por segundo para segurança máxima.
(D) Detecção de Tensão Inversa: Em alguns casos, uma companhia de utilidade pode desconectar energia a um cliente individual e esse cliente é capaz de obter energia por uma alimentação alternativa. Se a utilidade fosse reconectar energia sob estas condições, dano poderia ocorrer ao equipamento de medição e/ou ao sistema de distribuição. Guarda de energia preferivelmente é capaz de detectar esta condição de falha. O Guarda de Energia pode detectar qualquer tensão que realimenta na desconexão aberta pelas linhas que conectam às instalações dos clientes. Se tensão for detectada, o firmware do Guarda de Energia prevenirá automaticamente a reconexão.
(E) Pré-pagamento: Pré-pagamento por energia pode ser feito por telefone, transação eletrônica, ou pessoalmente. A quantidade de kWh comprada é transmitida ao medidor e armazenada em sua memória. O medidor contará abaixo, mostrando quanta energia ainda está disponível antes de alcançar zero e desconectar. Contanto que o cliente continue comprando energia, não haverá nenhuma interrupção no serviço, e a companhia de utilidade terá um relatório de atividade diário.
(F) Limitação de Carga: Como uma alternativa à desconexão por não pagamento ou parte de um sistema de pré-pagamento, medidores de Guarda de Energia podem permitir a utilidade limitar remotamente a potência entregue a um nível fixo, desconectando quando essa carga é excedida. Se o cliente exceder essa carga e for desconectado, o cliente pode reajustar um botão na unidade de exibição remota opcional para restabelecer carga contanto que a carga conectada seja menos do que o limite prefixado.
Alternativamente, clientes podem chamar uma linha de serviço de utilidade elétrica por telefone para ter o serviço restabelecido. Esta característica permite a utilidades elétricas proverem eletricidade para sistemas críticos até mesmo, por exemplo, no caso de um cliente não pagante.
(G) Limitação de Consumo Mensal: Alguns clientes se beneficiam de taxas subsidiadas e são dados um consumo total máximo por mês. O firmware de Guarda de Energia é capaz de interromper energia quando um certo nível de consumo é alcançado. Porém, este tipo de programa é implementado melhor quando notificação avançada para clientes é provida.
Isto pode ser alcançado tanto com uma exibição na casa, por meio de que uma mensagem ou série de mensagens notifica os clientes que sua taxa de consumo está chegando ao consumo projetado para o mês. Alternativamente (ou em conjunto), interrupções de serviço temporizadas podem ser programadas de forma que quando o limite está se aproximando, energia seja desconectada para períodos de tempo com incrementos cada vez mais longos para notificar os residentes. Estas interrupções planejadas em serviço atuam como uma advertência para clientes que seu limite está se aproximando de forma que eles tenham tempo para alterar seus padrões de consumo.
(H) Validação de Medidor: O módulo integrado do sistema preferivelmente é removível. Isto permite re-validação de laboratório fácil de precisão de medidor no evento de disputas de fatura de cliente.
(I) Benefícios Operacionais para Utilidade: O Guarda de Energia tem registros de evento e funções de diagnóstico a bordo, provendo os técnicos de campo com uma riqueza de dados para comissionar e reparar os sistemas elétrico e de comunicação. Parâmetros de não faturamento incluem: ampères, volts, temperatura, distorção harmônica total, freqüência, valores instantâneos de Watts, VARs e volt-ampères, V2 horas, 12 horas, fator de potência, e ângulo de fase.
Estas características e outras serão aparentes àqueles qualificados na arte depois de revisar as descrições anexas, código de software e esquemas.
Em um aspecto, a invenção inclui um dispositivo para medir uso de eletricidade, incluindo: meio para desconexão remota por comunicação de linha de potência; meio para detecção de roubo de eletricidade; meio para detecção de fraude; e meio para detecção de tensão inversa.
Em outro aspecto, a invenção inclui um aparelho para medição de multi-canal de eletricidade, incluindo: (a) uma cabeça de medidor operável para medir uso de eletricidade para uma pluralidade de linhas de consumidor de eletricidade; (b) um transponder em comunicação com a cabeça de medidor e operável para transmitir dados recebidos da cabeça de medidor por comunicação de linha de potência a um computador localizado remotamente, e para transmitir dados recebidos por comunicação de linha de potência do computador localizado remotamente à cabeça de medidor; e (c) um módulo de controle de carga em comunicação com a cabeça de medidor e operável para atuar conexão e desconexão de cada um de uma pluralidade de relês, cada relê da pluralidade de relês correspondendo a uma da pluralidade de linhas de consumidor de eletricidade.
Em várias concretizações: (1) o aparelho ademais inclui um detector de fraude em comunicação com a cabeça de medidor; (2) o detector de fraude inclui uma luz e uma superfície reflexiva, e a cabeça de medidor é operável para instruir o módulo de controle de carga para desconectar todas as linhas de cliente se o detector de fraude prover notificação que a luz não é detectada refletindo da superfície reflexiva; (3) o aparelho ademais inclui uma caixa contendo a cabeça de medidor, o módulo de controle de carga e os relês, e em que o detector de fraude inclui um detector de luz ambiente entrando na caixa; (4) o aparelho ademais inclui uma caixa contendo a cabeça de medidor, o módulo de controle de carga e os relês, e em que a caixa é instalada em um poste de utilidade; (5) o aparelho ademais inclui meio para comparar energia de transformador à energia total usada pelas linhas de consumidor; (6) o aparelho ademais inclui meio para detectar fluxo de tensão inversa pelas linhas de consumidor; (7) o aparelho ademais inclui uma memória legível por computador em comunicação com a cabeça de medidor e um contador em comunicação com a cabeça de medidor, o contador correspondendo a uma linha de cliente e operável para contar abaixo uma quantidade de energia armazenada na memória, e a cabeça de medidor operável para enviar um sinal de desconexão ao módulo de controle de carga para desconectar a linha de cliente quando o contador alcança zero; (8) o aparelho ademais inclui uma memória legível por computador em comunicação com a cabeça de medidor, a memória operável para armazenar um limite de carga para uma linha de cliente, e a cabeça de medidor operável para enviar um sinal de desconexão ao módulo de controle de carga para desconectar a linha de cliente quando o limite de carga é excedido; (9) o aparelho ademais inclui uma memória legível por computador em comunicação com a cabeça de medidor, a memória operável para armazenar um limite de uso para uma linha de cliente, e a cabeça de medidor operável para enviar um sinal de desconexão ao módulo de controle de carga para desconectar a linha de cliente quando o limite de uso é excedido; (10) o transponder é operável para se comunicar com o computador localizado remotamente através de linhas de potência de média tensão; (11) o aparelho ademais inclui uma unidade de exibição em comunicação com a cabeça de medidor e operável para exibir dados recebidos da cabeça de medidor; (12) a unidade de exibição é operável para exibir informação relativa a consumo de energia de um cliente; (13) a unidade de exibição é operável para exibir advertências relativas a uso de energia de um cliente ou roubo de energia suspeito; e (14) a unidade de exibição é operável para transmitir para dita cabeça de medidor informação entrada por um usuário.
Breve Descrição dos Desenhos
Figura 1 é um diagrama de bloco/fiação mostrando a conexão de concretizações preferidas.
Figura 2 é um diagrama de bloco mostrando a configuração
física de concretizações preferidas.
Figuras 3A-3B são diagramas esquemáticos de uma placa de CPU preferida de um Transponder de Varredura e MiniCloset.
Figura 4 é um diagrama esquemático de uma fonte de energia de Transponder de Varredura preferida.
Figura 5 é um diagrama esquemático de uma fonte de energia de MiniCloset preferida.
Figura 6 é um diagrama esquemático de uma placa de circuito preferida para retornar informação de transformador de corrente a uma cabeça de medidor de MiniCloset.
Figuras 7A-7C são diagramas esquemáticos de uma placa de circuito de Módulo de Controle de Carga preferida.
Figuras 8A-8D são diagramas esquemáticos de uma placa de fonte de energia preferida que provê detecção de fraude óptica.
Figuras 9A-9C são diagramas esquemáticos de uma placa de conexão de Guarda de Energia preferida.
Figura 10 é um diagrama esquemático para uma placa de circuito de controle operável para prover controle de relé.
Figura 11 é um diagrama de montagem de base de Guarda de Energia preferida. Figuras 12 e 13 são diagramas de barramentos de fase preferidos e construção dos mesmos.
Figura 14 é um diagrama descrevendo construção e montagem de estrutura de barra de neutro preferida.
Figura 15 descreve barras de transição preferidas;
Figura 16 descreve colocação preferida de barras de transição.
Figuras 17 e 18 descrevem construção de módulo de aceitante preferido.
Figura 19 descreve um módulo sensor de corrente e relê integrado preferido.
Figura 20 descreve uma vista explodida de um módulo sensor de corrente e relê integrado preferido.
Figura 21 mostra vistas explodidas de módulos de medição preferidos.
Figura 22 mostra os módulos de medição colocados em uma montagem de estrutura de EG e módulo de aceitante.
Figura 23 mostra uma vista explodida de uma concretização preferida de Guarda de Energia.
Figura 24 mostra uma vista explodida de uma montagem de EG preferida e montagem de base.
Figura 25 mostra uma disposição de EG preferida.
Figuras 26 e 27 são esquemas de módulo de medição preferidos.
Figura 28 tem esquemas preferidos para uma placa de lugar traseiro.
Figura 29 tem esquemas preferidos para uma placa de potência.
Figura 30 tem esquemas preferidos para uma placa de extensão de I/O. Figura 31 tem esquemas preferidos para uma placa de CPU.
Figura 32 tem esquemas preferidos para um módulo de controle.
Figura 33 tem esquemas preferidos para circuitos de medição e fonte de energia para um módulo de exibição de cliente;
Figura 34 tem esquemas preferidos para uma placa de exibição para o CDM.
Figura 35 é um diagrama de bloco de uma extremidade dianteira analógica preferida para medição.
Figuras 36 e 37 descrevem implementações de DSP preferidas.
Figura 38 ilustra características de resposta a impulso e freqüência de filtro em fase preferidas.
Figura 39 ilustra injetar sinais de PLC a harmônicos meio- ímpares de 60 Hz.
Figura 40 descreve 12 possíveis modos nos quais um quadro de FFT recebido por um medidor pode estar fora de fase com um quadro de FFT transmitido por transponder de varredura.
Figura 41 ilustra especificações de filtro de FIR preferidas.
Figura 42 descreve tensão e corrente resultando de uma FFT preferida.
Descrição Detalhada de Concretizações Preferidas
Em uma concretização, um aparelho de medição de Guarda de Energia inclui um MiniCloset (quer dizer, um aparelho de medição operável para medir uma pluralidade de linhas de cliente); um Transponder de Varredura; um ou mais relês operáveis para desconectar serviço para clientes selecionados; um Módulo de Controle de Carga; e meio de detecção de fraude óptica.
O MiniCloset e Transponder de Varredura referidos aqui são em grande parte os mesmos como descritos na Patente US N0 6.947.854. Quer dizer, embora cada um tenha sido melhorado através dos anos, a funcionalidade e estrutura pertinentes a esta descrição podem ser tomadas para serem as mesmas como descrito nessa patente.
Um aspecto da invenção inclui tomar a funcionalidade de medição de multicanal existente achada no MiniCloset e adicionar conexão e desconexão remotas por PLC. Prover tal funcionalidade adicional requerida adicionando novo hardware e software. O hardware adicionado inclui um Módulo de Controle de Carga (LCM) e relês de conexão/desconexão. Também adicionado eram circuitos de suporte para dirigir rastros de sinal para e do processador de medidor principal - a Cabeça de Medidor de MiniCloset. As adições de software incluem módulos de código que se comunicam com o hardware adicionado, como descrito nas tabelas abaixo. Figura 1 é um diagrama de bloco de conexões de uma concretização preferida. Linhas de potência de média tensão A, B, C e N (neutro) alimentam em Transformador de Distribuição 110. Linhas de baixa tensão conectam (por transformadores de corrente 120) o Transformador de Distribuição 110 à unidade de Guarda de Energia 140. A unidade de Guarda de energia 140 monitora os transformadores de corrente 120, e alimenta linhas de cliente monofásicas 1-24.
Figura 2 é um diagrama de bloco de estrutura preferida de uma unidade de Guarda de Energia 140.
Transponder de Varredura 210 é o coletor de dados preferido para a unidade 140, pode estar localizado externo ou dentro do MiniCloset, e pode ser o coletor de dados principal para mais de um MiniCloset de cada vez. O Transponder de Varredura 210 preferivelmente: (a) verifica dados (cada comunicação preferivelmente começa com a verificação de relógio e identidade de medidor para assegurar integridade de dados); (b) coleta dados (coleta periodicamente um bloco de dados de cada unidade de medidor, com cada bloco contendo leituras de medidor previamente coletadas, leituras de intervalo, e registros de evento); (c) armazena dados (preferivelmente os dados são armazenados em memória não volátil por um período especificado (por exemplo, 40 dias)); e (d) relata dados (tanto por PLC, modem de telefone, conexão de RS-232, ou outro meio).
A placa de deslizamento 280 inclui uma cabeça de medidor de Minicloset e um módulo de controle de carga 240, que provê os sinais de controle para ativar os relês. Toda a eletrônica preferivelmente é energizada por fonte de energia 250. A montagem de placa traseira 270 inclui múltiplos (por exemplo, 24) Transformadores de corrente e relês - agrupados, neste exemplo, como três conjuntos de 8 TCs e relês. Cabos de cliente são conectados por fios pelos TCs e se conectam ao circuito nas instalações de cliente 290. O Transponder de Varredura remotamente localizado 210 acessa a cabeça de medidor de Guarda de Energia e se comunica de modo bidirecional usando comunicação de portadora de linha de potência.
O fluxo de sinal mostrado nas Figuras 1 e 2 ê preferivelmente realizado implementando módulos de código de software diferentes que trabalham simultaneamente para habilitar a habilidade de conexão/desconexão remota no Minicloset. Estes módulos de software, providos no Apêndice abaixo, são:
<table>table see original document page 12</column></row><table>
Figuras 3-10 são esquemas de componentes preferidos, como descrito abaixo. Os relês de conexão/desconexão preferidos são relês de série K850 KG, mas aqueles qualificados na arte reconhecerão que outros relês podem ser usados sem partir da extensão da invenção.
<table>table see original document page 12</column></row><table> <table>table see original document page 13</column></row><table>
Em outra concretização, a implementação de Guarda de Energia tira vantagem da semelhança de arquitetura de painéis de disjuntor tradicionais, com o ambiente de medição de multicanal. Em um painel de disjuntor, eletricidade é alimentada ao painel e distribuída entre vários circuitos de cliente por disjuntores que provêem a habilidade para conectar ou desconectar os circuitos de cliente.
No MiniCloset/Guarda de Energia, múltiplos transformadores de corrente medem a corrente em circuitos de cliente e trazem estes dados de volta a uma unidade de processamento central, onde as quantidades de medição são calculadas. Porém, o MiniCloset/Guarda de Energia tem várias diferenças principais com um painel de disjuntor. Por exemplo, enquanto os disjuntores são achados perto de instalações de cliente, o Guarda de Energia tipicamente é instalado perto do transformador de distribuição de utilidade. As vantagens oferecidas por esta concretização alternada serão aparentes àqueles qualificados na arte. Por exemplo, esta concretização oferece dimensões melhoradas e tamanho global sobre as concretizações discutidas acima. Espaço é sempre um constrangimento quando adições de equipamento são feitas a instalações elétricas existentes. Esta versão do Guarda de Energia ("EG"), com dimensões preferidas de 71,12 cm X 55,88 cm X 27,94 cm provê uma vantagem significativa em situações onde constrangimentos volumétricos existem.
A descrição seguinte inclui detalhes de construção preferidos, esquemas detalhados, e descrições de software. Como com as concretizações discutidas acima, esta concretização é operável para prover operações de desconexão/conexão remotas, prevenir roubo, detectar fraude, detectar tensão inversa, executar pré-pagamento e limitar carga, e executar validação de medidor.
Detalhes de Construção de EG Preferidos
Nesta concretização, componentes primários do EG são:
1. Montagem de Base de Guarda de Energia
2. Montagem de Guarda de Energia
a. Barramentos de Fase e Barramentos de Neutro
b. Barras de transição
c. Módulo de Aceitante
3. Módulos de Medição de Guarda de Energia
a. Módulos de Medição
i. Módulos de Sensor de Corrente e Relê Integrados
4. Eletrônica de Guarda de Energia
a. PCB 203
b. PCB 204
c. PCB 234
d. PCB 235
e. PCB 202
f. PCB 210
g. PCB 230
h. PCB 206
Base de Montagem de EG
A base de EG inclui um fundo de invólucro com parafusos e arruelas de retenção como um mecanismo de travamento para a cobertura de topo de EG, que está conectada em um lado por dobradiças. Veja Figura 11. O fundo de invólucro provê roteamento para os cabos de cliente.
Montagem de EG - Barramentos de Fase Três barramentos de fase de alumínio são colocados para o centro da montagem de Guarda de Energia e alternados. Veja Figuras 12 e 13. Estes provêem conexão aos módulos de medição de cliente pelo uso de barras de transição. Uma disposição de barramento alternada é descrita na Figura 13. Barramentos são mostrados em preto.
Barras de Neutro
O EG preferivelmente inclui 4 barras de neutro que formam um quadro para montagem de EG, por esse meio provendo um caminho para a corrente de neutro. Isto é mostrado na Figura 14. O borne na barra cruzada provê a alimentação de neutro do transformador de distribuição de utilidade. Também, há 2 barras de neutro de placa-mãe que levam a corrente de neutro ao módulo de controle.
Barras de Transição
As barras de transição completam a conexão mecânica e elétrica entre os módulos de medição de cliente e os barramentos de fase. Veja a Figura 15. Uma barra de transição para fase A e C é mostrada na Figura 15A; uma barra de transição para fase B é mostrada na Figura 15B. Figura 16 mostra as barras de transição em preto.
Módulo de Aceitante
Um módulo de aceitante preferivelmente é feito de plástico e aceita mecanicamente os módulos de medição que podem ser encaixados facilmente na montagem de EG. Cada EG tem 4 módulos de aceitante que são empilhados juntos e podem acomodar tanto 12 módulos de medição bifásicos ou 8 trifásicos. Veja Figura 17. O módulo de aceitante também provê uma rota mecânica para a barra neutra de placa-mãe que conecta ao módulo de controle. Veja Figura 18.
Módulos de Medição de Cliente
Módulos de medição de cliente preferidos provêem a metrologia requerida para medir o consumo para um cliente monofásico, bifásico ou trifásico. Um módulo individual funciona como um medidor independente completo que pode ser testado e avaliado como uma unidade de medição separada. Cada módulo preferivelmente inclui um módulo de sensor de corrente e relê integrado e eletrônica de metrologia, e provê uma conexão entre o circuito de cliente e os barramentos de fase. Figura 19 descreve um módulo de sensor de corrente e relê integrado preferido. Figura 20 descreve uma vista explodida de um módulo de sensor de corrente e relê integrado preferido.
Figura 21 mostra vistas explodidas de módulos de medição preferidos. Figura 22 mostra os módulos de medição (mostrados em preto) colocados na montagem de quadro de EG e módulo de aceitante.
Figura 23 mostra uma vista explodida de Guarda de Energia, e
Figura 24 mostra uma vista explodida de uma Montagem de EG e Montagem de Base de EG preferidas.
Eletrônica
As caixas de Módulo de Controle preferivelmente incluem várias PCBs que funcionam simultaneamente para coletar dados de medição dos módulos de medição individuais e comunicar através de linhas de potência para transmitir estes dados a um dispositivo mestre, tal como um Transponder de Varredura ("ST").
Figura 25 mostra uma disposição de Guarda de Energia preferida para esta concretização. Cada linha de cliente tem um Módulo de Medição correspondente (PCB 203 e PCB 204, discutido abaixo) (esquemas mostrados nas Figuras 26 e 27).
Uma Placa de Colocação Atrás 2510 mostrada na Figura 25 (PCB 234; veja Figura 28 para diagrama de construção e esquemático) é o barramento comum que dirige sinais dentro do EG. Há dois tipos de opções de comunicação na Placa de Colocação Atrás 2510 para habilitar transferência de dados de Módulo de Controle 2520 para Módulos de Medição individuais PCB 203. Isto pode ser feito tanto usando a opção de I2C de 2 fios ou a opção serial de 1 fio.
O Módulo de Controle 2520 inclui uma Placa de Potência (PCB 210; veja Figura 29 para esquemático) é a placa de fonte de energia que também tem os circuitos de transmissão e recepção de PLC nela. A Placa de Potência provê energia à placa de CPU e às placas de eletrônica 203. O Módulo de Controle 2520 também inclui uma Placa de Extensão de I/O (PCB 230; veja Figura 30 para esquemático) é uma placa com várias opções de extensão de I/O que habilitam comunicação de Módulos de Medição à placa de CPU.
Módulo de Controle 2520 também inclui uma Placa de CPU (PCB 202; veja Figura 31 para esquemático), que tem um processador de Processamento de Sinal Digital (DSP) a bordo.
Finalmente, Módulo de Controle 2520 inclui uma placa de roteamento (PCB 235; veja Figura 32 para esquemático) com trilhas e um coletor sem componentes eletrônicos nele.
Cada Módulo de Exibição de Cliente (CDM) 2530 é instalado nas instalações do cliente e pode se comunicar de modo bidirecional com o EG instalado no transformador de distribuição servindo o cliente. PLC bidirecional habilita comunicação de utilidade-cliente através de linhas de potência de baixa tensão e permite a utilidade enviar informação regular, advertências, informação especial sobre interrupções, etc., para o cliente. Cada CDM 2530 inclui uma combinação selecionada de medição e fonte de energia junto com circuitos de PLC na mesma placa (PCB 240; veja Figura 33 para esquemático). Cada CDM preferivelmente também tem uma placa de exibição de 9 dígitos (PCB 220; veja Figura 34 para esquemático). Esta exibição se comunica com EG e mostra informação sobre consumo, precauções, advertências e outras mensagens de utilidade.
Implementação de Hardware Em uma concretização, o Guarda de Energia implementa Transformada de Fourier Rápida (FFT) no sinal de comunicação de PLC ambos no ST e no medidor, e para propósitos de medição executa análise de harmônico detalhada. Esta seção discute um esquema de implementação dos Módulos de Medição, comunicação com Módulos de Controle e comunicação de PLC do Módulo de Controle com um Transponder de Varredura remotamente localizado.
O Módulo de Controle 2520 inclui fonte de energia e circuitos de PLC (PCB 210; veja Figuras 25 e 29); extensão de I/O (PCB 230; veja Figura 30) e placa de CPU nomeada Medidor D (PCB 202; veja Figura 31). A fonte de energia provê energia ao medidor D e extensão de I/O e contém os circuitos de transmissor e receptor de PLC. PCB 235 provê um roteamento de trilha e conexão de coletor entre várias placas.
O Módulo de Medição pode ter duas versões: bifásica ou trifásica. A versão bifásica pode ser programada por software para funcionar como um único medidor bifásico ou dois medidores monofásicos. A versão bifásica inclui um medidor B2 (PCB 203, esquemático mostrado na Figura 26), enquanto a versão trifásica inclui um medidor B3 (PCB 204 esquemático mostrado na Figura 27). Os medidores B atuam como escravos para o medidor D no Módulo de Controle 2520. Os medidores DeB podem se comunicar por um protocolo de ASCII serial.
Os vários medidores B são interconectados por BPB 2510 a 2520, que provê energia, uma referência de 1 Hz e comunicações seriais para o medidor D. A máquina de DSP preferida para o medidor B é o chip 56F8014VFAE Freescale. O microprocessador preferido usado para implementar a CPU no medidor D é o entre a família de ColdFire Integrated Microprocessadores, MCF5207. O uso de um processador específico é determinado por requisitos de RAM e Flash ditados pela versão de medidor. Uma fonte de energia separada e placa de LCD completam a porção eletrônica do medidor D como um produto. À parte de atuar como um mestre para medidores Β, o medidor D também é um medidor trifásico e mede a saída de transformador total em que o EG está instalado. Como uma característica anti-roubo, este total é comparado com o consumo total relatado pelos vários medidores B.
<formula>formula see original document page 19</formula>
A constituição de fluxos de sinal é como segue:
B2: Duas tensões, Duas correntes e Nenhum Canal de Portadora de Linha de Potência (PLC).
B3: Três tensões, Três correntes e Nenhum Canal de PLC.
D: Três tensões, Três correntes e um Canal de PLC.
Cada fluxo tem um circuito associado para efetuar amplificação analógica e 'antialiasing'.
Específico para o medidor D é a implementação preferida de:
• Uma Malha Travada por Fase (PLL) para travar a amostragem dos fluxos de sinal a um múltiplo da linha de A/C entrante (amostragem síncrona para a linha de potência).
• Um Oscilador Controlado por Tensão (VCO) a 90-100 MHz controlado por processador de DSP por dois módulos de PWM acionando diretamente o relógio de sistema, conseqüentemente fazendo o DSP coerente com o PLL.
• Um detector de fase síncrono que só responde ao fundamental da onda de freqüência de linha entrante e não a seus harmônicos.
• Opção para executar esquemas de modulação de FSK e PSK.
Cada canal de medição e comunicação preferivelmente inclui circuitos analógicos de extremidade dianteira seguidos pelo processamento de sinal. Único aos circuitos analógicos é um filtro 'anti-aliasing' com ganho fixo que provê rastreamento de temperatura de primeira ordem, conseqüentemente eliminando a necessidade para recalibrar medidores quando derivas de temperatura são encontradas. Isto é discutido a seguir, e então uma implementação de processamento de sinal preferida é discutida.
Cadeia de Sinal Analógico de Tensão e Corrente
A extremidade dianteira analógica para canais de tensão (corrente) inclui elementos sensores de tensão (corrente) e um atenuador programável, seguido por um filtro 'antialiasing'. O atenuador reduz o nível de sinal entrante de forma que nenhum corte ocorra depois do filtro 'anti- aliasing1. O filtro 'anti-aliasing' de ganho constante restabelece o sinal a valor total na entrada do Conversor Analógico para Digital (ADC). Para medição, o filtro 'anti-aliasing' corta fora freqüências acima de 5 kHz. As entradas são então alimentadas no ADC que faz parte do DSP. Veja Figura 35, que é um diagrama de bloco de uma extremidade dianteira analógica preferida para medição.
Enquanto uma implementação típica incluiria um Amplificador de Ganho Programável (PGA) seguido por um filtro 'anti- aliasing' de baixo ganho, a invenção, nesta concretização, implementa um atenuador programável seguido por um filtro de ganho fixo grande. Além disso, a implementação de ambos os filtros 'anti-aliasing' em um único chip é a mesma usando os mesmos Amplificadores Operacionais Quádruplos junto com resistores de 25 ppm e capacitores de NPO/COG. Esta implementação única casando os filtros 'anti-aliasing' assegura que as derivas de fase encontradas em ambos os canais de tensão e corrente sejam exatamente idênticas e conseqüentemente precisão do cálculo de potência (dado pelo produto de V e I) não é comprometido. Isto provê um meio para ambos canais de V e I rastrearem derivas de temperatura até primeira ordem sem recalibrar o medidor.
Em contraste, usando um PGA junto com um filtro de ganho baixo não pode rastrear o deslocamento de fase nos sinais VeI introduzidos devido à temperatura. Isto é porque o deslocamento de fase introduzido por PGA é uma função do ganho.
Cadeia de Sinal Digital de Tensão, Corrente e PLC
Figura 36 é um diagrama de bloco da placa de PCB 202; as funções de cada bloco serão aparentes àqueles qualificados na arte. Figura 36 mostra uma implementação de DSP preferida.
Esta concretização preferivelmente usa uma PLL para travar a amostragem dos fluxos de sinal a um múltiplo da freqüência de linha de A/C entrante. Na concretização discutida acima, a amostragem é a uma taxa assíncrona à linha de potência. No medidor D, há um VCO a 90-100 MHz que é controlado pela máquina de DSP por dois módulos de PWM. O VCO excita diretamente o relógio de sistema do chip de DSP (desabilitando a PLL interna), assim o DSP se torna uma parte integrante da PLL. Travar o relógio de sistema do DSP à linha de potência facilita o alinhamento da amostragem para a forma de onda da linha de potência. O detector de fase deveria funcionar assim para só responder ao fundamental da onda de 60Hz entrante e não a seus harmônicos. Figura 37 é um diagrama de bloco desta implementação de DSP preferida.
Um DSP BIOS ou código de comutação de contexto voluntário provê três pilhas, cada uma para fundo, comunicações de PLC e comunicações seriais. O pequeno micro se comunica com o DSP usando um excitador I2C. O circuito integrado MSP430F2002 mede as fontes de energia, porta de fraude, temperatura e tensão de bateria. As tarefas do MSP430F2002 incluem:
i. manter um RTC;
ii. medir a tensão de bateria;
iii. medir a temperatura;
iv. medir a fonte de energia +U;
v. reajustar o DSP na interrupção parcial; vi. prover um circuito de vigilância adicional; e
vii. prover uma referência de 1 segundo para entrar no DSP para uma referência de tempo para medir a referência de 1 segundo contra o relógio de sistema do VCO.
Cadeia de Sinal de Comunicação de PLC de Medidor D Uma instalação típica consiste em múltiplos EGs e STs se comunicando através das linhas de potência. O medidor D se comunica de modo bidirecional com um Transponder de Varredura localizado remotamente pelo transformador de distribuição. Para habilitar isto, esta concretização usa uma banda de 10-25 kHz para comunicação de PLC. O sinal de PLC é amostrado a cerca de 240 kHz (212 * 60), síncrono com tensão de linha, seguindo o que um filtro de Resposta a Impulso Finita (FIR) é aplicado para dizimar os dados. Especificações de FIR preferidas são dadas abaixo: Banda de 10-25 kHz
<table>table see original document page 22</column></row><table>
Veja Figura 38 para características preferidas de resposta de freqüência de filtro em fase e resposta a impulso.
Depois que a dizimação é feita a 60 kHz (2^11 * 30), uma FFT de 2048 pontos é então executada nos dados dizimados. A taxa de dados é assim determinada ser 30 baud dependendo da escolha de filtros de FIR. Toda FFT produz dois bits aproximadamente a todo 66 ms ao usar FER na banda de 10-25 kHz para se comunicar por transformadores de distribuição.
Para evitar o problema de se comunicar na presença de ruído de linha, esta concretização preferivelmente implementa uma técnica única para comunicação robusta e segura. Isto é feito injetando sinais de PLC a freqüências que são harmônicos meio-ímpares da freqüência de linha (60Hz). Isto é discutido abaixo, para uma concretização usando um espectro de ruído típico achado em linhas de CA na gama de 12-12,2 kHz. Figura 39 ilustra injetar sinais de PLC a harmônicos meio-ímpares de 60 Hz. Desde que FFT é feita a todo 30 Hz e os harmônicos são separados por 60 Hz, os bits de dados residem na caixa correspondendo ao 201,5° e 202,5° harmônico de 60 Hz na Figura 39. O algoritmo considera estas duas caixas de freqüências e compara a amplitude do sinal nos dois para determinar 1 ou 0. Este esquema de FSK usa duas freqüências e produz uma taxa de dados de 30 baud. Alternativamente, QFSK, que usa 4 freqüências, pode ser implementado para produzir 60 baud.
Ao atravessar por transformadores, preferivelmente ambos STs e medidores D executam FFT no PLC e sinais de dados a todo 30 Hz em uma gama de 10-25 kHz. Porque as Malhas Travadas em Fase (PLLs) implementadas ambos no ST e no medidor D estão travadas à linha, os quadros de dados estão sincronizados à freqüência de linha (60 Hz) igualmente. Porém, os quadros de dados podem se deslocar em fase devido a:
1. várias configurações de transformador que podem existir no caminho entre o ST e medidor (delta -ípsilon, etc.); e
2. um deslocamento em fase devido ao fato que STs estão travados em uma fase particular, enquanto medidores mono e polifásicos podem ser energizados por outras fases.
A relação de sinal para ruído (SNR) é maximizada quando o quadro de dados de medidor e quadros de dados de ST estão alinhados perto de perfeição. Do ponto de vista de um medidor, isto requer receber sinal de PLC de todos os possíveis STs que pode "ouvir", decodificar o sinal, verificar por SNR alinhando quadros de dados, e então responder ao ST que está produzindo SNR máxima. Figura 40 descreve os 12 possíveis modos nos quais o quadro de FFT recebido pelo medidor pode estar fora de fase com quadro de FFT de ST. Linhas pontilhadas correspondem a uma rotação de 30 graus considerando um transformador delta no caminho de sinal entre ST e o medidor.
Além disso, porque os quadros de dados estão disponíveis a todo 30 Hz em uma linha de 60 Hz5 há duas possibilidades correspondendo às 2 possíveis fases obtidas dividindo 60 Hz por 2. Conseqüentemente, há 24 modos que os quadros de dados de medidor podem estar desalinhados com quadros de dados de ST.
Em cada quadro do ST, há um número integral ímpar de ciclos da freqüência de portadora. Desde que o esquema de modulação preferido é Chaveamento por Deslocamento de Freqüência (FSK), se houver η ciclos para transmitir bit 1, bit 0 é transmitido usando n+2 ciclos da freqüência de portadora. Fica vital para o medidor reconhecer seus próprios 2 ciclos de 60 Hz a fim de ser capaz de decodificar seus bits de dados que estão disponíveis a todo 1/30 de um segundo.
Se o medidor D decodificar sinais com quadros de dados desalinhados, há energia que transborda nas freqüências adjacentes (meio- ímpares separadas). Se o nível de sinal que cai na caixa de freqüência "adjacente" for menos do que o fundo de ruído, o sinal pode ser decodificado corretamente. Porém, se o derramamento for mais do que o fundo de ruído, a habilidade para distinguir entre IeO diminui, e conseqüentemente a SNR global cai, resultando em um erro em decodificação. Em conclusão:
a. Se os quadros estiverem desalinhados, contaminação de bits de dados ocorre e a SNR degrada.
b. No evento que a freqüência muda e há quadros de dados desalinhados, há uma quantia significativa de energia que transborda nas caixas de FFT adjacentes, conseqüentemente interferindo com os outros STs no sistema que se comunicam usando freqüências nessas caixas específicas. Uma vez que o deslocamento de relógio seja determinado correspondendo à SNR mais alta, o medidor então se trava até que uma mudança significante em relação de SNR seja encontrada pelo medidor, em qual caso o processo repete.
Implementação de Medição em Medidor DeB usando FFT
Enquanto versões do medidor B e do medidor D executam medição, o medidor D também é responsável por coletar a informação de medição dos vários medidores B por PCB 234. Cada fluxo de dados nos medidores tem um circuito associado para efetuar amplificação analógica e anti-aliasing. Cada uma das seções de extremidade dianteira analógica tem um atenuador programável que é controlado pelo código de nível mais alto. O fluxo de dados é amostrado a 60 kHz (210 * 60) e então um filtro de FIR é aplicado para dizimar o fluxo de dados a ~15 kHz (28 * 60). Especificações de filtro preferidas são mostradas na tabela abaixo e Figura 41.
<table>table see original document page 25</column></row><table>
Desde que só os dados até 3 kHz são de interesse, preferivelmente uma faixa de 3-12 kHz no FIR de dizimação é usada com taxa de amostra de -15KHZ. As freqüências de 0-3 kHz ou 12-15 kHz são mapeadas em 0-3 kHz. Uma FFT real é executada para produzir 2 fluxos de dados que podem ser decompostos ademais em 4 fluxos de dados: Tensão Real e Imaginária e Corrente Real e Imaginária. Isto é alcançado adicionando e subtraindo freqüências de espelho positivas e negativas para as partes real e imaginária, respectivamente. Desde que o sinal 'aliased' na gama de 12-15 kHz cai abaixo de 80 dB, a precisão é alcançada usando o filtro de FIR acima discutido. Alternativamente, uma FFT complexa de 256 pontos pode ser executada em toda fase do fluxo de dados dizimado. Isto produz 2 pares de fluxos de dados: uma parte real, que é a tensão, e uma parte imaginária, que é a corrente. Esta abordagem requer uma FFT complexa de 256 pontos a todo 16,667 milissegundos.
Os resultados de executar qualquer FFT são a tensão e corrente mostradas na Figura 42, onde a notação Vm,n denota o m-ésimo harmônico do n-ésimo número de ciclo. Por exemplo, V11 e I11 correspondem ao fundamental do primeiro ciclo, e V21 e I21 para o primeiro harmônico do primeiro ciclo, etc., como mostrado na Figura 42, que descreve quadros de FFT para tensão, indicando os harmônicos.
As partes real e imaginária do conteúdo harmônico de qualquer k-ésimo ciclo são dadas por:
Vmk = Re (Vmk) + iIm(Vmk); m = 1,..., M Imk = Re (Imk) + iIm(lmk); k = 1,..., η
A parte imaginária de tensão é a medida de falta de sincronização entre a PLL e a freqüência de linha. A fim de calcular quantidades de medição, os cálculos são feitos no domínio de tempo. No domínio de tempo, a funcionalidade de FFT oferece a flexibilidade para calcular quantidades de medição tanto usando só o fundamental ou incluindo os harmônicos. Usando a forma complexa da tensão e corrente obtidas da FFT, as quantidades de medição são calculadas como:
P Vmk * Imk
W = Re(P) = Re(Vmk * Re(Imk + Im(Imk) * Im(Vmk)
Var = Im(P) = Re(Imk) * Im(Vmk) - Re(Vmk) * Im(Imk)
Fator de Potência = W/P
Porém, nas fórmulas anteriores, quando os harmônicos estão incluídos (Vmk e Imk; m = 1, ... M; k = 1, ... n), todas as quantidades de medição incluem os efeitos de harmônicos. Por outro lado, quando só o fundamental é usado (Vlk e Ilk), todas as quantidades calculadas representam só a contribuição de 60 Hz. Como um exemplo, nós mostramos os cálculos só quando o fundamental é usado para executar cálculos. Só Vte I1 são usados de todos os quadros de dados de FFT. As quantidades seguintes são calculadas para um dado conjunto de N quadros e uma freqüência de linha de fune:
<formula>formula see original document page 27</formula>
para N ciclos.
Esta flexibilidade para tanto incluir ou excluir os harmônicos ao calcular quantidades de medição se traduz a uma melhoria significante sobre as capacidades oferecidas pela concretização acima descrita. Ainda outra característica oferecida por esta concretização é o cálculo de Distorção Harmônica Total (THD). A THD é a medição da distorção harmônica presente, e é definida como a relação da soma das potências de todos os componentes harmônicos para a potência do fundamental. Para o n-ésimo ciclo, isto é avaliado como:
<formula>formula see original document page 27</formula>
Vmn (Imn) é o m-ésimo harmônico do n-ésimo ciclo obtido da FFT, onde
<formula>formula see original document page 28</formula>
Módulo de Exibição de Cliente
O módulo de exibição de cliente é instalado nas instalações de cliente, se comunica com o Guarda de Energia perto do transformador, e inclui: PCB 240, fonte de energia e circuitos de PLC (veja a Figura 33); e PCB 220, mostrador de LCD (veja a Figura 34). Em uma concretização, a unidade de exibição de cliente instalada na residência do cliente é um unidade de PLC bidirecional que se comunica com EG. Por exemplo, não só pode a utilidade enviar mensagens, o cliente também pode pedir uma verificação de consumo com o EG instalado no poste.
Enquanto certas concretizações específicas da invenção foram descritas aqui para propósitos ilustrativos, a invenção não está limitada aos detalhes específicos, dispositivos representativos, e exemplos ilustrativos mostrados e descritos aqui. Várias modificações podem ser feitas sem partir do espírito ou extensão da invenção definida pelas reivindicações anexas e seus equivalentes. <table>table see original document page 29</column></row><table> <table>table see original document page 30</column></row><table> <table>table see original document page 31</column></row><table> <table>table see original document page 32</column></row><table> <table>table see original document page 33</column></row><table> mov !PORTC,#read_TRISC ; Switch C port bit 0-4 to input clrb ctl_port.driver_enable ; Disable output drivers, enable jumper read mov temp,#9 :loop djnz temp,:loop ; Wait at least 20 uSee mov W^PORTC ; Get inverse of jumpers in W mov Work_addr,W ; Savejumpervalue setb ctl_portdriver_enable ; Enable output drivers mov !PORTC,#init TRISC ; Restore C port status mov Jumper StatejWork addr ; Savejumper state and Work_addr,#03h ; Ignore ali but 2 LSBs add Work addr,#LCM base addr ; Add base offset cjne Work_addr,PIC_addr,Set_edge_wait Its_us mov Wstate,#Rcv_cmd ; point to next routine jmp Rcvnextword Rcv_cmd mov Command,Comm_bufFer ; save command jnb Command.4,Comm_get_fast ; Fast read command, skip Reg ID mov Wstate,#Rcv_regJE> ; point to next routine jmp Rcv_next_word Comm get fast ; point to next routine mov Wstate,#Rcv_tpar jmp Rcvnextword Rcv reg ID mov register_ID5Comm_buffer ; save register number mov Wstate,#Rcv_tpar ; point to next routine jnb Command .3 ,Rcv_next_word ; Ifno value, done mov word__count,#7 ; Init word count mov Wstate,#Rcv_value ; point to next routine jmp Rcv_next_word Rcv value rl CommJbuffer rl Comm_buffer rl Commbuffer ; Shifl rcvd bits to MSBs mov Comm__bit_count,#5 ; shift 5 bits :shift loop rl Comm_buffer rl Comm_buf+4 rl Comm__buf+3 rl Comm_buf+-2 rl Comm_buf+l rl Comm_buf ; Shift a bit from CommJbuf to comm_bui djnz Comm_bit_count,:shift_loop djnz word_count,Rcv_next_word; any more words? mov Wstate,#Rcv_tpar ; point to next routine jmp Rcv_next_word Rcv_tpar mov WjTpar ; Get result of parity calculations jnz Parityerror ; If not 0, parity error jmp Set_rcv_stop ; set up to receive stop bit ; Comm transmit word handler routines
9
XmitwordhandIer
djnz Comm_bit_count,Comm_ret
Doxmitword
mov PCLATH,#$< mov W5Wstate jmp W
; Ifword not complete, continue
; Execute word handler routine
Send_addr mov mov jmp
Send_cmd
mov
jnb
mov
Value_is_next mov jmp
Send_reg_ID mov mov jmp
Send_value mov mov
Wstate,#Send_cmd> W,PIC_addr Send next word
Wstate,#Send_value>
Command.4,Value_is_next
Wstate,#Send_reg_ID>
WsCommand Send next word
Wstate,#Send_value> W,Register_ID Send next word
Wstate,#Next_value> Word_count,#7
; point to next word routine ; get address
; point to send value
; Is it fast read command? ; point to next word routine
; get command
; point to next word routine ; get Register ID
; point to next word routine ; value is 7 words Iong
Next value
:loop
mov Comm_bit_count,#5
ri comm_buf+4
rl comm_buf+3
ri Comm_buf+2
ri Comm_buf+l
rl Comm_buf
rl Comm_buffer
djnz Comm_bit_count,:Ioop
mov WjCommbuffer
djnz word_count, S end_next_wor d
mov Wstate,#Send_Tpar>
mov W5Commbuffer
jmp Send_next_word
; Get 5-bit word ; If not Iast word, ali set ; send parity next
Send_Tpar mov mov
Wstate,#Send_stop W.Tpar
; point to next word routine ; get transverse parity <table>table see original document page 36</column></row><table> <table>table see original document page 37</column></row><table> <table>table see original document page 38</column></row><table> <table>table see original document page 39</column></row><table> <table>table see original document page 40</column></row><table> PIC.DEF
/*
include file for serial communication with PIC chíps */
#pragma switch(ALL,FREQ)
switch (PIC_serial_status) {
case sending_bits: case sending st5 bits:
#ifdef VATEST
out_bit_value = (PICxmitBuf.bits.bufLong[0] and 0x80000000) != 0; /* out bit value = MSB */
PICxmitBuf.bits.bufLong[0] = PICxmitBuf.bits.bufLong[0] « 1; if (PICxmitBuf.bits.bufLong[l] and 0x80000000)
PICxmitBuf.bits.bufLongCO]++; PICxmitBuf.bits.bufLongfl] = PICxmitBuf.bits.bufLong[l] « 1; if (PICxmitBuf.bits.bufLong[2] and 0x80000000)
PICxmitBuf.bits.bufLong[l]++; PICxmitB uf.bits.bufLong[2] = PICxmitBuf.bits.bufLong[2] « 1; /* Shíft 96-bit buffer */
#else
out_bit_value = 0;
shift_LSB_ptr = andPICxmitBuf.bits.bufByte[l 2]; /* point past least significant word of 96-bit register */
asm(" MOVE.L _shift_LSB_ptr,A0" " ROXL.W -(AO)", " ROXL.W -(AO)", " ROXL.W -(AO)", " ROXL.W -(AO)", " ROXL.W -(AO)", " ROXL.W -(AO)",
/* Get pointer to buffer, clear carry */ l* rotate Iefl and decrement pointer */ /* rotate Ieft and decrement pointer */ /* rotate Iefl and decrement pointer */ /* rotate Iefl and decrement pointer */ /* rotate Iefl and decrement pointer */ /* 96 bits have been shifted, MSB is in carry
" ROXL.W
);
out bit value"
/* Put MSB in out bit value */
#endif
break; case do_send_cmd: bitcouní = NUM_STARTJBITS-1; PIC_serial__status = sending_start; out_bit_value = 0; break; case do_PIC_start:
bit_count = 3 * BITS_PER_SEC; out_bit_value = I;
PIC_serial_status = sending_PlC_start; break; case sending_start: out_bit_value = 0; break; case sending_stop: case sending start 1: out_bit_value — 1; break; default: out_bit_vaIue = 1;
}
if (out_bit_vaIue)
fsl004.io.pulse0ut20ff = 1; else
fsl004.io.pulsé0ut20ff = 0; /* Send bit out */
in_bit_value = fsl004.io.pulseInlState; /* Get rcvd bit value */ fsl004.io.pulse0utl0ff =1; /* Send clock rising edge */
switch (PIC_serial_status) {
case waiting_for_start: if (in_bit_value = 0) zero_count++;
else {
if (zerocount = (NUM_START_BITS-1)) {
.PIC_seriaI_status = rcving_bits;
bit_count = PICrcvBuf.bitCount + 1; }
else
zero_count = 0;
}
break; case rcving bits:
# ifdef VATEST
PICrcvBuf.bits.bufLongfO] = PICrcvBuf.bits.bufLong[0] « 1; if (PÍCrcvBuf.bits.bufLong[l] and 0x80000000)
PICrcvBuf.bits.bufLongfO]++; PlCrcvBuf.bits.bufLong[l] = PICrcvBuf.bits.bufLong[l] « 1; if (PlCrcvBuf.bits.bufLong[2] and 0x80000000)
PICrcvBuf.bits.bufLong[l]++; PICrcvBuf.bfts.bufLong[2] = (PICrcvBuf.bits.bufLong[2] « 1) + inbitvalue;
#else
shift_LSB_ptr = andPICrcvBuf.bits.bufByte[12]; /* point past least significant word of 96-bit register */
asm(" MOVE.L _shift_LSB_ptr,A0", /* Get pointer to buffer, clear carry */
-(AO)", /* rotate Iefl and decrement pointer */
-(AO)", /* rotate Ieft and decrement pointer */
-(A0)"s /* rotate Ieft and decrement pointer */
-(AO)", J* rotate Ieft and decrement pointer */
-(AO)", /* rotate Ieft and decrement pointer */
-(AO)" /* 96 bits have been shifted, LSb is unknown
" ROXLAV " ROXL.W " ROXL.W ROXL.W " ROXL.W "* ROXL.W );
PICrcvBuf.bits.bufByte[ 11] = (PICrcvBuf.bits.bufByte[l 1] and Oxfe) 1 in_bit_value; /* add in received bit */
#endif
break;
default: {
>
>
if (-bit_count <= O) {
switch (PIC_serial_status) {
case rcving_bits: PIC_serial_status = rcvingjrtop; bit_count = 1; brsak; case sendingjbits: PlC_seri al_status = sending_stop; bit_count = 1; . break; case sending stop: if (PICxinitBuf.PIC_addr == GLOBAL_PIC_ADDR) PIC_serial_stalus = idle;
else {
PIC_seriaI_status = waiting for start; bit_count = PIC_wait_limit;
zero_count = 0; >
break; case sending_PIC_start: PlC_seriaI_status = idle; break; case sending_start: PIÇ_seria lstatus = sending_start_l; bit__count = 1; break; case sending Start 1: PIC_serial_status = sending_bíts; bit__count = PICxmitBuf.bitCount break; case waiting_for_start: PICrcvBuf.flags |= rcv_timeout_flag | rcv_data_ready_flag; PIC_seríal_status = idle; break; case rcving stop: if .(in_bit_value = 0)
PlCrcvBufilags |= rcv_bad_length_flag; PIC_serial_status = idle; PíCrcvBuf.flags J= rcv_data_ready_flag; bit^count = I; break;
default: PlC_serial_status = idle;
>
}
#pragma Switch(ALL3NOFREO) PULSE.C
Trinclude "mtrlink.def' f* #include "flash.def" */ # define PSTRU_DEFINED í/include "pulselink.def
#include "pulse.h" #include "ufloat.h"
tfinclude "log.h"
tfinclude "alami.h"
#include "copymem.h"
#include "plcctrl.h"
#include <stdio.h>
#ifdeffakeMC5
#undef NUMPH - #definc NUMPH 24 srendif
/* define WDT flags for the PIC communication routine */ tfpragma region Cram=WDTFIags") shortint WDTpulseSec; #pragma region ("ram=ram")
#pragma region ("data=secondBack") void (*pulseSecondp)(void)=pulseSecond; tfpragma region ("data=data")
#ifndef IS_MC5
#pragma region ("data=everySubsecond") í/ifdef ISRS M
void (*pu!seSubsecp)(void)=pulseSubsecond; #else
void (*pulseSubsecp)(void)=puIseService; ítendif
#pragma. region ("data=data") #endif
#pragma region ("data=powerUp") void (*puIseStartupp)(void)=puIseStartup; tfpragma region ("data=data")
#pragma region ("data=dayBack") void (*pulseDayp)(void)=pulseDay; #pragma region ("data=data") /* clear out PIC */
void pulseColdstartO.
r Ϊ.
int i;
for (i=0; i<num_PICs; H+)
if (PIC_status[i].software_type ==3) {
PIC_status[i] .clear_pulse_regs = TRUE;
PIC_status[i] .getstatus = TRUE; >
. clear state = SEND_GLOBAL_CLR; }
void pulseStartup(void)
t x.
int i;
#ifndef IS_RSM
int work_PIC_addr; tfendif
#ifdefIS_MC5
int work_num_puIses; #endif
#ifdef VATEST /* testlül! */
temp_command = SYSTEM_CONTROL; tempregED = 0;
temp_command_data = READENCODERID; tempflags = rcv_data_ready_flag; tfendif
for (i=0;(!dont_clearJPIC_stats) andand (i<{2*NUMPH));i++) {
puIseData[i].error_cnt = 0; pulseData[i].ID_fie]d[0]=0;
pulscData[i].reading — 0; }
for Ci=O; i<MAX_PICS; i++) PIC_statiis[i].PIC__addr = 0;
hoId__num_puIse__ctrs = reIeaseÇodep->option.numPuIseCounters; if (hold_num_pulse_ctrs > NUMPH) num_pulse_ctrs = NUMPH; • else
num_pulse_ctrs = hold_num_pulse_ctrs; num__PJCs = 1; tfifdef IS_MC5
. PIC_status[0].PIC_addr = MC5 JVTUXJPIC_ADDR; /* If MC5, add PDM PIC(s) to PIC table */ if (int_configltmessg.configLTM [PULSEI ] .accum) {
work_num_pulses = num_pulse_ctrs; work_PIC_addr = 0;
while (work_num_puIses > 0) {
PIC_status [numPICs++] .PICaddr = work_PIC_addr++; /* Pulse counters for Ql3
work_num_pulses -= 4; } * ·
}
. if (int_confígltmessg.confígLTM[PULS E2] .accum)
{ ■ · .. · · work_num_pulses = num_pulse_ctrs; work_PIC_addr = 6;
while (work_num_pulses > 0) {
PTC_status[num_PICs++].PIC jiddr = \vork_PlC_addi-H-; /* Pulse counters for Q14
work_num_pulses -= 4; >
>
num LCMs = releaseCodep->option.LCM_flags and 0x03; workPICaddr = LCMB A S EADDR;
for (i=0;i<nurn_LCMs;i++) {
PIC_status[num_PICs++].PIC_addr = work_PIC_addr++; /* LCM's */ }
#else
ííifdefIS_ST5
PIC_status[0].PIC_addr = ST5_MUX_PIC_ADDR; /* If ST5, add mux to PIC table */ ATM_work = releaseCodep->option.couplers_mask; work_PIC_addr = ATM_BASE_ADDR;
for (i=0;i<4;i++) {
if ((ATM_work and 0x08) != 0) { /* Bit is set in mask, add ATM PIC to table */
PJC_status[numJPICs++].PIC_addr = work_PIC_addr; >
work_PIÇ_addr++;
ATMwork = ATM_work « 1; }
#else
if (num_pulse_ctrs = 0) numPICs = 0; tfendif #endif
for Ci=O; i<MAX__PICS; i++)
{ /* Build PlC table */
PIC_status[i].get_semo = TRUE; PIC_status[i].get_version = TRUE; PIC_status[i].get_status = FALSE; . PlCstatusfi] .reset_status = FALSE; PIC_status[i].update_parameter = FALSE; if (! dont__clear_PIC_stats) {"
PIC_status[i].PIC_reset_count = 0; PIC_status[i] .comm_error_count = 0; PlC_status[i]. PIC_data_err__count = O; PIC_status[i].software_type = O; PlC_status[i].software_version = 0;
PIC_status[i].serial_number = O; >
PIC_status[i].cuir_puIse_reg = O;
#ifdef IS_MC5
if (PIC_status[i] .PICjaddr >= ST5_MUX_PIC_ADDR)
PIC_status[i].repIy_waitJimit = DIRECT_PIC_WAIT_LIMIT; else
PIC_status[i].rep]y_wait_limit = BUFFERED_PIC_WATT_LIMIT;
/'else
PlC_status[i] .replywaitlimit = DIRECT_PIC_WAIT_LIMIT; #endif
if (PIC_status[i].PIC_addr <= MAX_PULSE_PIC_ADDR)
Pl C_slatus [i ] .num_pu lse_regs = PULSES_PER_PIC; else·
PIC_status[i].num_pulse_regs = 0;
}
current_PIC_index = O; rcv_PJC_index = O;
if (dont_clear_PIC_stats)
dont_clear_PIC_stats = FALSE; /* CIear flag */
else {
PIC_bad_addr__count = O; PICrcvBuf.flags = O; PIC^serial_status = do_PIÇ_start;
PIC_clk state = clk_Iow; ' /* Initialize serial comin variables */
}
clear_state = NOGLOB ALSEND;
pulseOutMode = releaseCode.option.picMode; /* for compatibility with old code */
if (startup.eoldStart) {
pulseColdstartO; } const unsígned char parlty6[32] =
{1,2,4,7,8,11,13,14,16,19,21,22,25,26,28,31,32,35,37,38,41,42.44,47,49,50,52,55,56,59,61,62 >;
void pulseDayO {
dont_clear_PIC_stats = TRUE; /* Tell pulseStartup not to clear error counts *f rebuild_timer = REBUILD_DELAY; /* Set up for delayed table rebuild */
}
void pulseSecondO {
#ifndeflS_ST5
pulseServiceO; #endif
if (Comm_background_flags.do_rebuild) {
pulseStartupO;
Comm_background_flags. do_rebui 1 d = FALSE; >
,. if (Cornm_background_flags.do_alarm) . {
putAlarm(andPIC_alarm,4);
Comm_background_flags.do_alarm = FALSE; }
<
/* set_PLC_relays fimction */
/* Called from PLC routines to request update of */ /* PLC port multíplexer PIC ehíp on ST5 power board */
#ifdefIS_ST5
void setJPLC_relays(int xmitRelay,int rcvRelay) {
- while (MUX_controLactivejflag || MUX_control.request_flag) {
ccwaitO; }
MUX_oontrol jcmit_mask = xmitRelay; MUX_control.rcv_mask = rcvRelay; MUXjcontrol .done__flag = FALSE; MUX_control.request_flag = TRUE;
if ((MUX_control.xmit_mask != MUX_control.last_xmit_mask) ||
(MUX_control.rcv_mask != MUX_control.last_rcv_mask)) {
•while (!MUX_control.done_flag andand
!(MUX_controLactive_flag andand (PIC_serial_status === rcving bits)) )
{
ccwaiíOí }
}
> #endif
void pulseServiee(void)
r
\
BOOLEAN need_pulse_read, copy_rcvd_data, rcv_buf_err;
#ifdef IS_MC5 BOOLEAN
got_ver_3, got_ver_3_3;
int j;
unsigned char *work_char_jptr; unsigned Iong work_bit_mask; #endif
, int \voik_pul se_index;
phaccum accumXfer; ■ int i;
if (numJPICs — O)
PIÇ_serial_status = idle;
if (PIC_serial_status = idle) {
if (!WDTpuIseSec)
WDTpulseSec=I; /*Tell WDT controller that we are OK*/
}
if (hoId_num_pulse_ctrs != releaseCodep->option.numPuIseCounters) { /* hdwr -n has changed */
dont_clear_PIÇ_stats = FALSE;
rebuild_timer =1; /* Force immediate table rebuild */ >
. if ((PIC_serial_status = idle) andand (rebuild_timer != 0) andand
(—rebuild_timer = O)) {
Comm_background_flags.do_rebuild = TRUE; }
else if ((PIC_serialjjstatus = idle) andand (num PICs !=0) andand (puIseOutMode != PIC_MC_SERIAL) andand
(!Comm_backgrotind_f]ags.do_rebuild)) í* Serial processing enabled? +/
{
if (PICrcvBuf.ílags and rcv_data_ready_flag)
{ /* Process received message */
PICrcvBuf.ílags and= ~rcv_data_ready_flag; rcvjbufjerr — !decade_rcv_buffer();
if ((PIC_comm_mon.control_flags and RCVDATARDY) = 0) {
PIC_comm_mon.rcv_buf = PICrcvBuf;
PIC_comm_mon.control_flags |= RCV DATA RDY; }
if ((ext_comm.control_flags and CPY_RCV_DATA) != 0) t
\
extjcomm .rcv_buf=PICrcvBuf; ext_comm.control_fIags and= ~CPY_RCV_DATA;
ext_comm.control__flags |= RCV_DATA RDY; >
#ifdefIS_ST5
if (ATM_control.active_flag) {
ATM__control.result_flags = PICrcvBuf.flags;
if (rcv_buf_err) {
if (ATM control.state != WATT ALIGN) {
ATM_controI.error_flag = TRUE; ATM_contro].active_flag — FALSE;
• ATM_controi.done_flag = TRUE;
• > -
>
cise { ·
switch (ATM control.state) {
case DOPRESET: {
ATM_control.xmit_IeveI = PICrcvBuf.command_data » 24; ATM_control.coupIer_level = (PICrcvBuf.command_data » 16) and OxOff;
ATM_control .acti ve_flag = FALSE; }
break;
case SET_AL1GN: {
ATM_controI. state = WATT_ALIGN; >
break:
case \VAIT_ALIGN: {
ATM_control.optimum_cap_code = PICrcvB uf.command_data and ATMJRC_CAP_MASK;
ATM_control.optimum_reading = PICrcvBuf.command_data» 16; ATM_control.result_flags |= (PICrcvBuf.command_data and OxeOOO);
/* Copy flags from reply */ , if ((ATM_control.result_flags and OxeOOO) != 0)
{ /* AnaJog leveis out of range */
ATM_control.error_flag = TRUE; \ if (ATM_control.optimum_reading < ATM_MIN_READTNG) {
ATM_contxol.resultJflags |= 0x1000; /* Indicate reading too Iow */
ATM_control.error_flag = TRUE; >
AlM_controI.active_flag = FALSE; >
break; case DOJPLC_SET:
case DO_ATM_DISCONNECT: {
ATM_controI.active_flag- = FALSE; }
break;
default: {
ATM_control.aclive_flag = FALSE;
ATM_controI.error_flag = TRUE; }
break;
}
>
if (!ATM_contro1.active_flag) ATM_control.done_flag = TRUE;
>
if (MUX_control.active_flag) {
MUX_controI.resuIt_flags = PICrcvBuf.flags;
if (rcv_buf_err) {
MUX_control.error_flag = TRUE; MUX_control.last_xmit_mask = 0;
MUX_control.last_rcv_mask = 0; }
cise {
M U X_contro 1.1 ast_xmit_m ask == PICrcvBuf.command_data and Oxfif;
MUX_control.last_rcv_mask = (PICrcvBuf.command_data » 8) and OxfF; }
MUX_control.active_flag = FALSE;
MUX_control.done_flag = TRUE; >
#endif
if (rcv_buf_err) {
#ifdef IS_ST5
if f!ATM_control.active_flag || (ATM_controI.state í= WAIT ALIGN))
tfendif
{
last_comm_err_flag = PICrcvBuf.flags;
copymem(sizeof (PICbitBuf), (char *) (andHoldrcvBuf), (char *) (andPICrcvBuf));
if ((PICrcvBuf.flags and rcv_bad_addr_flag) != 0) { /* past end of valid PICs, address error */ PIC_bad_addr_counH-+;
set_PIC_alarm(PIC_adderr_OJPICrcvBuf.PIC_addr,
(PICxmitBuf.PICjaddr « 8)+PICxmitBuf.command);
}
else
{ /* PIC address was valid, but comm failed */ PIC_status[rcv_PIC_index].comm_error_countr»-+;
if (PIC_status[rcv_PIC_index].comm_error_count> 2) {
set_PIC_aIarm(PIC_coraeiT_0JPIC_status[rcv_PIC_index].PIC_addr, PICrcvBuf.flags);
}
/* Lost contact with PlC, read serial number and software version */ PIC_status[rcv_PIC_index] .get_serno = TRUE;
PIC_status[rcv_PIÇ_index].get_version = TRUE; }
}
>
else
{ /* Valid message received */
if ((PICrcvBuf.command = READJREGISTER) andand (PÍCrcvBuf.regjnD =
STATUS_REG)) {
process_status_bits(); >
else if (PTCrcvBufLcommand = SYSTEM_CONTROL) {
if (PlCrcvBuf.regJD == STATUS_REG) { /* Response frome reset status bits cmd */
PIC_status[rcv_PIC_index].reser_status = FALSE;
process_status_b itsÇ); }
/fifdef IS_MC5
else if ( (PIC_status[rcv_PIC_index].softwaretype = 4) andand
((PIC_status[rcv_PICJndex).last_cmd_data and OxffffOOOO) = READ_ENCODER_iD) )
{ /* response from encoder read ID comd */
work__pulseJndex = (PICrcvBuf.PIC_addr * PULSES_PERJPIC) + PICrcvBuf.regJD;
i = (PlC_status[rcv_PIC_index].last_cmd_data and OxOOOOffDO) » 8; work_char_ptr = (unsigned char *) andPICrcvBuf.command__data;
for (j=0; j<4; j++) · .
{
if ((*work_char__ptr = O) || (i >= ID_FIELD_LENGTH)> {
j = 10; /* indicate end of message found *J }
else {
pulseData[workjpu!se_index].ID_buffer[í] = *work_char_ptr; i++;
work_char_ptr-H-; >
> <table>table see original document page 54</column></row><table> if (work_puIse_index < (NUMPH * 2)) {
pulseData[work_pulse_index].reading = PlCrcvBuf.command_data; copy_rcvd_data = FALSE; .' ' · · ·
if(PIC_status[rcv_PIC_index].get_version) {
>
else if (PIC_status[rcv_PIC_index].sofhvare_type = 4) { /* Remote encoder interface module */
• copy_rcvd_data - TRUE;
• accumXfer.low = pulseData[work_pulse_index].reading; }
else if (PIC_status[rcvJPJC_index].software_type — 3) { /* Remote pulse counter module */
copy_rcvd_data = TRUE;
if (!PIC_status[rcv_PIC_index].get_serno) {
sprmtf((char *) pulseData[work_pulse_index] .ID_field,"S%08 ldP%d", PIC__status[rcv_PTC_index].serial_number, PICrcvBuf.regJD);
>
if (releaseCode.option.countEveryEdge) {
accumXfer.low = pulseData[work_pulse_index].reading; >
else { ·
accumXfer.low = pulseData[work_pulse_index].reading » 1; }
}
accumXfer.high = OL; #ifhdef VATEST
if (copy_rcvd_data) {
#ifhdef IS_MC5
/* It is an RSM or ST5, so mapping for pulse 1 thru 4 is M1Q13, M1Q14, M2Q13,
M2Q14 */
ph[0][workjulse_index/2][(workjpulse_indexand0x0l)?PULSE2:PULSEl].accum =
ph[ 1 ][work_pulse_index/2][(work_pulse_indexand0x01 )?PULSE2:PULSE 1] .accum = accumXfer;
f/e Ise
/* It is an MC5, so mapping for pulse 1 thru 48 is M1Q13..M24Q13, M1Q14..M24Q14 V
ph[0][workjpuIseJndex%l^MPH][(workju!se^ m = <table>table see original document page 56</column></row><table> PICxmitBuf.command = WRITEJREGISTER; PICxmitBuf.reg_ID = OUTPUT_REG;
PICxmitBuf.command_data = ATM_control.start_cap_code and ATM_RCCAP_MASK;
PICxmitBuf.command_data |= ATM_PRESET_CODE; " ATM_controI.state = DOJPRESET; break;
case DOJaLIQN:
. PICxmitBuf.command = WRTTE_REGISTER; PICxmitBuf.reglD « CONTROLREG;
if (ATM_control.start_cap_code > ATM_control.end_cap_code)
ATM_control.end_cap_code = ATMcontrol .start_cap_code; PICxmitBnf.command_data = ATM__control.start_cap_code and ATM_RC_CAP_MASK;
PICxmitBuf.command_data = (PICxmitBuf.command_data « 12 ) |
(ATM_control .end_cap_code and ATM_RC_CAP_MASK) I (ATM_MEAS_TIME « 24); ATM_control.state = SET_ALIGN;
ATM_control.align_timer = ATM_control.end_cap_code - ATM_control .start_cap_code;
ATM_control.align_timer *= ((ATM DISC_TIME + ATM_MEAS_TTME + 4) * (1.25/62.5));
ATM_control.align_timer +=13; /* Time in 1/64 sec to wait before checking
result *í
/* Number of steps * time per step + 25% + .2 second */
break;
case SET_NORMAL_PLC: PICxm itBuf.command = WRliEREGXS TER; PICxmitBufregJD = OUTPUT_REG;
PICxm itBuf.command_data = ATM_cojitrol.optimum_cap_code and ATM_JRC_CAP_MASK;
PICxmitBuf.commanddata |= ATM_PLC_CODE;
ATM_control.state = DOPLCJSET;
break;
case DISCONNECTICOUPLER: PICxmitBuf.command = WRTTER EG1STER; PlCxmitBuf.reg_ID = OUTPUT_REG;
PICxmitBuf.command__data = ATM_eontro!,optimum_cap_code and ATMRCC ΑΡΜΑ SK;
PICxmitBuf.command data |= ATM_DISC_CODE; . ATM_control.state = DO_ATM__DISCONNECT; break;
defauJt:
case READ_XM1T_LEVEL: . ATM_control.error_flag = TRUE; ATM_control.done_flag = TRUE; ATM_control.active_flag - FALSE; break; if (ATM_confrol.active_flag) {
formatjxmitJbufferO;
PIC_wait_limit = DIRECT_PIC_WAIT_LIMIT; PIC_serial_status = do_send__cmd; /* Start UART */
>
else if (ATM_control.active_flag) {
if ((ATM_control.state != WAIT ALIGN) ||
(~ATM_control .a) ign_timer <= 0» {
ATM_control.error_flag = TRUE; ATM_control.done_flag = TRUE;
ATM_control.active_flag = FALSE; >
eise
{ /* poli ATM for auto-tune end */
PíCxmitBuf.command = 0;
format_xmitjbuffer0;
PIC_waitJimit = DIRECTJPICJWAITJLIMIT;
PIC_seriaI_status = do_send cmd; J* Start UART */ }
}
else if (MTJX_controI.request_flag) {
MUX_control.request__flag = FALSE; MUX_control.error_flag = FALSE;
if ((pulseOutMode = P1C_ST_SERIAL)) {
PICximtBuf.bils.bufByte[0] = ((MUX_control.rcv_mask and 0x03) « 5) | ((MUX_control.xmit_mask and 0x7f) » 2);
PICxmitBuf,bits .bufByte[ 1] = ((MUX_control.xmit_mask and 0x03) « 6);
bit_count= 11;
PIC_serial_status = sending_stS_bits; /* Start UART */ MUX_controI.last_xmit_mask = MUX_control.xmit_n?ask; MUX_control.Iast_rcv_mask = MUX_control. rcv_mask; MUX_control.done_flag = TRUE;
else {
MUX_controI.active_flag = TRUE; PICxmitBuf.PIC_addr = ST5_MUX_PIC_ADDR; PíCxmitBuf.command = WRITEREG1STER; P ICxm itB uf.reglD = OUTPUT_REG;
.PICxmitBuf.command_data = (MUX_controI.rcv_mask « 8) + NlUXcontrol.xmitjmask;
format_xmit_buffer0;
PlCjvaitJiroit = DIRECTJPJCWAITJLIMIT; PIC_serial_status = do_send_cmd; · /* Start UART */ >
>
#endif
else if ((ext_comm.control_flags and (XMIT_DATA_RDY | XMIT_REQUEST» = . (XMIT_DATAJRDY | XMIT REQUEST)) { , /* Send command for externai routine */
PICxmitBuf= ext_comm,xmit_buf; ext_comm.control_flags and= ~XMIT_REQUEST; ext_comm.control_flags |= CPY_RCV_DATA;
/* Look up correct PIÇ_status index for reuested PIC */
for (i=0; ((i<MAX_PICS) andand (PIC_status[i].PIC_addr != PICxmitBuf.PIC_addr)); i++); ·
if (i < numJPICs) {
P ICstatu s[i]. last_cmd_data = PICxm itBuf.command_data;
PlCstatusfi]. Iastcommand = PICxmilBuf.command; >
#ifdeflS_MC5
if (ext_comm.xmit_buf.PIC_addr < ST5_MUX_PIC_ADDR)
PICwaitiimit = BUFFERED_PIC_WAIT_LIMIT; else
ííendif
PIC _vvait_limit = DIRECT_PIC_WAIT_LIMrr; format_xihit_bufferO;
PlCjserialstatus = do_send_cmd; /* Start UART »/
>
else if ( ((ext_comm.controI_flags and SUPPRESS_NORMAL_COMM) — 0) #ifdefIS_ST5
andand ST5_PIC_de lay ctr <= 0»
{
ST5_PlC_delay_ctr = ST5_P1C_DELAY; /* Slow down routine communications in 1he ST5 +/ #else
>
{
//endif
PICxmitBuf.PICaddr = PIC_status[current_PIC_index].PIC_addr; need_pulse_read = TRUE; /* Set defaults */
#ifdefIS_ST5
if ((pulseOutMode = PIC_ST_SERIAL) andand
(PlCxn)itBuf.PlC_addr = ST5_MUX_PIC_ADDR» {
}
else tfendif
if (PIC_status[current_PIC_index].force_j)ulse_read andand (ÍPIC_status[current_PíC_index].get_version)andand
(PIC_status[current_PIC_index].PIC_addr < ST5_MUX_PIC_ADDR) ) {
PIC_status[current_PIC_index].force_puIse_read = FALSE: > ·
else · ·
{
PIC_status[current_PIÇ_index].forcej?ulse_read = TRUE; #ifndefIS_ST5
if (PIC_status[current_PTC_index].clear_pulse_regs andand (clearjstate = GLOBALCLRSENT) ) { /* Global clear sent, get status */
need_pulse_read = FALSE; PICxmitBuf.command = READREGISTER; PICxmitBuf.reg_ID = STATUS_REG;
format_xmit_bufferO; }
else
//endif
if (PIÇ_status[carrent_PIC_índex].get_version) { -
need_pulse_read = FALSE; PICxmitBuf.command = READREGISTER; PlCxmitB uf.reg_IE> = VERS_REG;
format_xmit_buffer(); }
else if (PIC_status[current_PlC_index].get_serno) {
need_pulse_read = FALSE; PICxmitBuf.command = READREGISTER; PICxmitBuf.regJDD .= SERNO_REG;
format_xmit_buirerO; >
else if (PlC_status[current_PIC_index].update_parameter) {
PICxmitBuf.command = WRITEJREGISTER; if (PIC_status[cuiTent_PIC_index].software_type = 3) { /* Pulse ctr *f
r /* Pulse ctr parameters: */
/* Power-On sample rate: , 42/sec *í /* Power-ofF sample rate: 1/sec */ /* Days to count if rcving pulses: */ /* . RSM: 5 days ·/
/* PDM: 3 5 days */ /* Days to count if no pulses rcvd: */ /* - RSM: 1 day */
/* PDM: 3 days . */
/* nn RSM the O. Ishc nf */ ϊ* load_shedjmask[0] are sent to */ /* the PIC output bits */
#ifdefIS_RSM
PICxmitBuf.commat\d_data = 0x01150507 and (load_shed_state[Ol | OxffiHEfc);
#else
PICxmitBuf.command_data = 0x011523Od;
#endif
>
#ifdefIS_MC5
else if (PTC_status[current_PIC_index].software_type = 4) { /* Remote encoder reader */
PICxmitBuf.command_data = READJENCODER__PARM; if ((releaseCodep->option.couplers_mask and 0x01) = 0) • { /* If mask bit 0 is 0, no touch-pad compatibility */
PICxmitBuf.co'mmand_data and= OxffOOffít; }
}
else if (PIC_status[current_PIC_index].software_type = 5) { /* MCS iqux */'
got_ver_3 = got_ver_3_3 = FALSE;
for (i=0; i<num_PICs; i++) {
if (PIC_statusti].get_version) {
got_ver_3 = TRUE;
got_ver_3_3 = TRUE; >
else if (PIC_status[i].software_type = 3) {
got_verJ3 = TRUE; if (PIC_status[i].software_version — 3) got_ver_3_3 = TRUE;
}
>
if (got_ver_3)
/ C
if (got_ver_3_3 andand
((releaseCodep->option.couplers_mask and 0x02) != 0)) {
PICxmitBuf.command_data = 0x0c007000; /* 32 bps, periodic wake-up >
else {
PICxmitBuf.commanddata = 0x0c007080; /* 32 bps, no wake-up */
ι
t
}
else
PICxmitBuf.command__data = 0x02030080; /* 205 bps, no wake-up */
}
#endif
Vrifdcf IS_ST5 cise if jCPIC_status[current_PIC_index]. software_type = 8) { l* Auto tune module */
PICxmitBuf.command data = 0x02030000 | (ATM_DISC__TIME « 8) |· (ATMjRC_XMIT_ON» 8) I ATM_NUM_CAP_BITS; /* xmit offset = 2, cplr offset = 3, */
/* relay delay = ATM_DISC_T1ME, Xmit mask = ATM_RC_XMIT_ON, */
/* number of capacitar relays = ATM_NUM_CAP_BITS */
>
else if (PIC_status[current_PIC_index].software_type = 6) { /* ST5 mux */
PICxmitBuf.command data = 0x00000000; } ~
//endif
else if (PIC_status[current_PIC_index].sofitware_type = 7) { /* Load Control Module */
PICxmitBuf.command data = 0x00000000; >
eise { '
PIC_status[current_PIC_index].update_parameter = FALSE;
/* unknown software type, cancel command */
if (PIC_status[current_PIC index].update_parameter) {
need_pulse_read = FALSE; PICxmitBufreglJro = PARMREG;
format_xmit_buffer0; >
}
else if (PIC_status[current_PIC_index].reset_status) {
need_pulse_read = FALSE;
PICxmitBuf.command = SYSTEMCONTROL; PICxmitBuf.command_data =
(PIC status [current_PIC_index] .status_reg_value and Oxffbf); PICxmitBuf.command_data = PICxmitBuf.commandjdata « 16; /* Move status bits to M Sb's */
PICxmitBuf.reg_ID = STATUS_REG;
form atxm itbu fferO; >
else if (PIC_status[current__PlC_index].get_status) {
need_pulse_read = FALSE; PICxmitBuf.command = READJREGISTER; PICxmitBuf.reg_ID = STATUSJREG;
format_xmit_buffer0; }
#ifdefIS_MC5
if (need_pulse_read andand (PIC_status[current_PIC_index].software_1ype = 4)) {
need_pulse_read = FALSE; PICxmitBuf.command = SYSTEMCONTROL; if (++PIC_status[current__PlC_index] .curr_ID_reg >= PULSES_PER_PIC) PlC_stetus[current_PIC_index].curr_ID_reg = 0;
If C (((PIC_status[current_PIC_index].PIC_addr * PULSES_PER_PIC) +
PICj_status[current_PIC_index].curr_ID_reg) % 24) >= num_pulse_ctrs) PrC_status[current_PIC_indsxj.curr_ID_reg = 0;
PICxmitBuf.reglD = PIC_status[current_PIC_index].cnrr_ID_reg·, work_puIse_index = (PIÇ_status[current_PIC_index].PIC_addr * PULSESPERPIC) + PICxmitBuf.regJGD;
for Ci=O; i<lDJFIELD_LENGTH; i++) {
if (pulseData[work_pulse_index].ID_bu£fer[i] = 0) {
j = i-i;
i = IDFIELDLENGTH; >
>
if0«>) {
j = 0; }
else if (j > (ID_FEELD_LENGTH-4)) {
j = TO_FIELDJLENGTH-4; }
PICxmitBuf.command_data = READJENCODER_ED | 0 « 8);; ·
format__xmit_bufferO; }
#endif
>
if (need_pulse_read) {
#ifdefIS_MC5
if (PIC_status[current_PICJndex] .softwarejype = 7) {
i = PIC_status[current_PIC_index].PIC_addr - LCM_BASE_ADDR; /* get
LCM #*/
work_bit_mask = (load_shed_state[01 » (9 ♦ i)) and OxOOOOOlff; PICxmitBuf.conimand_data = 0;
for (i=0;i<9;i++). {
if ((work_bit_mask and 0x100) != 0) PICxmitBuf.command_data = (PICxmitBuf.command_data « 2) + 1; /* Isb lurns relay on *f else
PICxmitBuf.command_data = (PICxmitBuf.command__data « 2) + 2; /* msb turns relay on */
\vork_bit_mask = woric_bit_mask « 1; >
PICxmitBuf.command_data |= 0x32000000; /* Set pulse time = 50 mS */ PICxmitBuf.command = WRITEREGISTER; PlCxmitBuf.reg_ID = OUTPUT_REG; format_xmit_buffer();
need_pulse_read = FALSE; }
else
ȴendif
if (PIC_status[current_PIC_index].nujn_pulse_regs == 0) . {
#ifhdef ISST5
PICxmitBuf.command = READREGISTER; . PICxmitBuf.reg_ID = VERSREG; format_xmit_bufferO; need_pulse_read = FALSE;
#endif
}
else {
/íifdef IS_MC5
if ( (((PIC_status[current_PICJndex].PIC_addr * PULSES_PER_PIC) + PIC_status[current_PIC_index].curr_pulse_reg) % 24) >=
num_pulse_ctrs)
PTC_status[current_PIC_index].curr_puIse_reg = 0;
tfendif
if (PIC_statusfcurrent_PIC_index].curr_pulse_reg <= MAX_FAST_READ) PICxm itB uf. command = PIC_status[current_PIC_index].curr_pulse_reg; else
PICxmitBuf.command = READREGISTER;
PICxmitBuf.regJLD = PIC_status[cuiTent_PIC_index].currjpulse_reg; format_xmit_bufFer(); need_pu lseread = FALSE; . if (++PIC_status[current_PIC_index] .curr_pulse_reg >=
PIC_status[current_PIC_index].num_pulsejregs) {
PIC_status[current_PIC_index].curr_pulse_reg = 0; tfifdef IS_RSM
PIC_status[current_PIC_index].update__parameter = TRUE;
Uendif
}
}
}
PIC_status[current_PIC_index].last_cmd_data:=PICxinitBuf.comniand_data; PIC_status[current_PIC_index].last_command = PICxmitBuf.command;
PIC_wait_limit = PTC_status[current_PIC_index].reply_wait_Iimit;
rcvJPICjndex = current_PIC_index;
if(++current_PIC_index == numJPICs) ciHTent_PIC_index = 0;
if (!need_pulse_read) PIC_seriM_lstatus. = do^send^cmd; /* Start UART */ <table>table see original document page 65</column></row><table> \vork_status_bits = work status bits » 1;
work_pulse_index++; >
} · . ■ if (((PIC_status[rcv_PIC_index].status_reg_value and 0x20) != 0) andand
! PIC_status[rcv_PIC_index] .clear_pul se_regs) { ·'
P]C_status[rcv_PIC_index].comm_error_count++; /* PIC detected comm parity
if (PIC_status[rcv_PTC_index].comm_error_count > 2) {
set_PIC_aIarm(PIC_comerr_0,PIC_status[rcv_PIC_index].PIC_addr, PICrcvBuf.flags | 0x0800);
}
}
if ((PIC_statns[rcv_PIC_index].status_reg_value and 0x3080) != 0) {
PlC_status[rcv_PIC_indexJ.PIC_reset_count++; /'* PIC was reset */
if (PIC_status[rcv_PIC_index] .PIC_reset_count >1) C
{
set_PIC_aIarm(PlC_reset_0,PIC_status[rcv_PIC_index].PIC_addr, PIC_status[rcv_PIC_index].status_reg_vaiue);
>
}
if (PIC_status[rcv_PIC_index].clear_pulse_regs andand
(clear_state == GLOBAL_CLR_SENT) ) { ·
PIC_sta.tus[rcv_PIC_index].cIear_pulse_regs = FALSE; if ( ((PIC_status[rcv_PIC_index].status_reg_value and OxOf) != OxOf) andand (PIC_status[rcv_PIC_index].sofhvare_type = 3) )
{
PIC_status[rcv_PIC_index].PIC_data_err_countH-t-; /* CIear cmd failed */ set_PIC_alarm(PIC_flags_0,PIC_status[rcv_PIC_index].PIC_addr,
PIC_status[rcv_PIC_index].status_regL_value); > · ·
>
else if ( ((PIC_status[rcv_PICJmdex].status_reg^jvalue and 0x0f) != 0) andand ((PIC_status[rcv_PIC_index].status_reg_vaIue and Oxfl0) = 0) )
{
PIC_status[rcv_PICJndex].PIC_data_err_count 100D; /* Spurious clr cmd V set_PIC_alarm(PIC_flags_0,PIC_status[rcv_PIC_index].PIC_addr, PIC_status[rcv_PIC_index].status_reg_value);
}
}
void set_PIC_alarm(alarmcodes pass_alarm_codes, int pass_PIC_addr, unsigned int pass_alarra_data)
ι »
if (!Comm_background_flags.do_alann) {
PIC_alarm.alarm_codes = pass_alarm_codes + pass_PIC_addr; PIC_alarm.ack = pass_alarm_data;
Comm_background_flags.do_alann = TRUE; }
unsigned char workTpar;
BOOLEAN decode_rcv_buffer(void) {
int i;
unsigned int worklnt;
workTpar = Oxl f;
if (PICrcvBuf.flags = 0) {
work_PIC_addr = Get5(); if (PíCrcvBuf.flags == 0)
PICrcvBuf.PIC_addr = work_PIC_addr, /* VaIid address received */ PICrcvBuf.command = Get50; if (PICrcvBuf.command > OxOf)
PJCrcvBuf.regJD = Get5(); else
PlCrcvB uf.regJOD = PICrcvBuf.command; PICrcvBuf.command_data = 0; for (i=0; i<6; H-+)
PICrcvBuf.command_data = (PICrcvBuf.command_data « 5) + Get50; worklnt = Get5();
PICrcvBuf.command_data = (PICrcvBuf.command_data « 2) + (worklnt» 3); PTCrcvBuf.flags |= worklnt and 0x07; worklnt = Get50; if (workTpar != 0)
PICrcvBuf.flags |= rcv_tpar_error_flag; } .
/* Look up correct PIC_status index for data in rcv buffer */
for (i=0; ((i<MAX_PICS) andand (PIC_status[i].PIC_addr != PICrcvBuf.PIC_addr»; i++); if (i >= num_PICs)
PICrcvBuf.flags |= rcv_bad addr_flag; /* past end of valid PICs, address error */
if (i =F MAXJPIÇS) rcvJPIC_index = 0; else
rcv_PJC_index = i;
^ifdef VATEST
#if VATEST==I
PICrcvBuf.command = temp_command; PICrcvBuf.reg_JD = temp_reg_ID; PICrcvBuf.command_data = íemp^commanddata; PICrcvBuf.flags = temp_flags;
#endif #endif return((PJCrcvBuf.flags and
~(PIC_error_flag | PIC_need_refresh_flag j PICJnva I id_data_flag» = O);
}
void format_xinit_buffer(void) t
\
int ij,ShiftCount;
unsigned int Worklnt; unsigncd Iong WorkData;
PICxmitBuf.bitCoünt = Ó;' PICxmitBuf.bits.bufLong[0] ^= O; PlCxmitBu£bits.bufLong[l] - O; ,
PICxmitBuf.bits.bufLong[2] = O; /* Clear xmit bit buffer */
workTpar = Oxlf; /* Initializa Tpar */
StufT6(PICxmitBuf.PIC_addr); Stuff6(PICxmitBuf.comroand);
if (PTCxmitBuf.command > OxOf) {
StuffôÇPICxm i tBuf.reg_ED>;
if (PiCxmitBuf.command >, 0x17) {
WorkData ~ PICxm itB uf.comm and_data; ShiftCount = 32;
for (i - 0,i<7;B-+) {
WorkIht = O;
-for Q=0y<5y-H-) {
WorkInt = WorkInt« 1; if (WorkData and 0x80000000)
Worklnt+=.1;
WorkData = WorkData « 1;
if (--ShifiCount = 0) {
Worklnt = (Woriclnt« 3) + (PÍCxmitBuf.flags and 0x07);
- j = S;.. • }·
• ·>. * ·
"StufT6(Worklnt); • }
·}. -
>
iStuff6(workTpar); .
·., . /* Buffer set, set up UART control */
PlCrcv BiiEbitCouiit = 66;
if ((PIC_comm_mon.control_flags and XMIT_DATA_RDY) = 0) {
PfCcornm_mon.xmit_buf = PICxmitBuf;
PIC"corom_mon.control_flags |= XMIT_DATA_RDY; > PICrcvBuf.flags = 0;
PICrcvBufJ>IC_addr = PICxmitB uf.PIC_addr; /* preset address of remote PIC */
}
unsigned int Get5(void) {
int byte_index, bitjndex;
unsigned int work_result;
workresult = 0; if ((PICrcvBuf.flags and
~<PIC_error_flag | PIC need refresh flag | PIC_inval!d_data_flag)) = 0) {
byte_index = 96 - PICrcvBuf.bitCount; bit_index = byte_index and 0x07; byte_index = byte_index » 3;
work_result = (PICrcvBuf.bits.bufByte[byte_index] « 8) + PICrcvBuf.bits.bufByte[byte_index+l];
work_result = work_result» (10 - bit_index); work_result and= 0x3 f,
if (parity6[work_result» 1] != workresult) {
work_result = 0;
PICrcvBuf.flags |= rcv_parity_err_flag; >
else {
work_result = work_result» 1; workTpar Λ= work_result; PICrcvBuf.bitCount -= 6; if (PICrcvBuf.bitCount < 0)
PICrcvBuf.flags |= rcv_bad_length_flag;
}
}
return(work_resu!t);
>
void Stuff6(int pass_data) {
int bytejndex, bit_index;
workTpar pass_data;
byte_index = PICxmitBuf.bitCount» 3;
bit index = PICxmitBuf.bitCount and 0x07;
pass_data = parity6[pass_data] « (10 - bit_index);
PICxmitBuf.bits.bufByte[byte_mdex] j= pass_data» 8;
PICxmitBuf.bits.bufByte[byte_index+l] ]= pass_data and Oxff;
PICxmitBuf.bitCount += 6;
> PULSE.H
/* */
#ifndef BOOLEANJDEFINED #define BOOLEAN_DEFINED typedef int B OOLEAN; #endif
/* subsecond processing for pulse counters */ void pulseSubsecond(void);
/* Daily PIC table rebuild */ void pulseDay(void);
/* Main PIC communication routine *f void pu!seService(void);
/* PIC comm routine - once-per-second code */ void pulseSecond(void);
/* Subroutines for PIC communication *! void Stuff6(int pass data); void format_xmit_buffer(void); BOOLEAN decode_rcv_buffer(void); void process_status_bits(void); unsigned int Get5(void);
void set_PIC_aIarm(alarmcodes pass_alarm_type, int pass_PIC_addr, unsigned int pass_alarm_data);
/* Startup code for PIC communication */ void pulseStartup (void);
/* Routine to c]ear pulse registers after cold start */ void pulseColdstart(void);
i* defíned in pt.c */ #define RJELAYA O #define RELAY_B 1
void pulseOut(int picNbr,int relayNbr,int ONoff); void ptEvetyMinute(void); void ptEverySecond(void);
void set_PLC_relays(int xmitRelay,int rcvRelay); PICEND JDEF
/*
include file at end of mtrsamp to control MC and ST pie chips from mtrsamp interrupt */
#ifdef IS_MC5
if (puiseOutMode=PIC_MC_SERIAL) {
asm (" MOVE.L #Ox80400E,AO");
asm (" AND.W #0xFCFF,(A0)"); /* Clear clock and data ports */ }
#endif
#ifdefIS_ST5
asm(" MOVE.L #Ox80400E,AO">;
asm (" AND.W #0xFEFF,(A0)"); /* Insert clock falling edge V
if (PIC_seriaI_status — sending st5 bits) {
asm (" NOP"); asm (" NOP"); asm (" NOP")·, asm (" NOP"); asm (" NOP"); asm (" NOP"); asm (" NOP"); asm (" NOP"); asm (" NOP"); asm (" NOP"); asm (" NOP"); asm (" NOP"); asm (" NOP");
asm (" MOVE.L #0x80400E,A0">;
asm (" OR.W #0x01 OOj(AO)"); /* Ksending bits, activate clock*/ >
#endif
PIC VARS .DEF
/*
local variables to control MC and ST pie chips from mtrsamp interrupt meter/c/lib/picvars.def
iinsigned Iong bitOneFlag; PULSELJNK.DEF
/* determine if variables are externai or deflned here */ #undefref
#ifdef PSTRU_DEFINED
#defíne ref
#else
#define ref extern #endif
#if (NUMPH > 6) #deflne IS_MC5 #else
#ifdefMAX_SCAN_METERS
#define IS_ST5
#else
//define IS_RSM
#endif
#endif
í* Values for hdwr -p (pulseOutMode) */
#define STANDARD_PIC_COMM 0
#if 0 /* remove these equates from mtrlink.def */
#define PICJPULSESERIAL 1
#define PIC_MC_SERIAL 2
#define PIC_ST_SERIAL 3
#endif /* then uncomment them here */
J* tfdefine VATEST 1 */
#ifdef VATEST
#undef IS_MC5 #undefIS_RSM #undefIS_ST5
#define IS_RSM
#undef NUMPH
tfdefine NUMPH 3
#undef MAX_SCAN_METERS
#endif
/* Uncomment for water meters (Oakville Hydro) */ Mefme READJENCODERJD 0x49ff0000 #define READ ENCODER PARM 0x0312500c
/* Uncomment for gas meters (Sonix) #define READ ENCODER ID 0x49fe0389 ,Vdeflne READ_BNCODER_PARM 0x0300500c #define ID FIELD LENGTH 13
#defíne PULSES_PER_PIC 4 #ifdef ISMC5
#define BITS_PER_SEC 822 tfdefine MAX_PICS 16 #else
#ifdefIS_ST5
#define BITS_PER_SEC 942
#define MAX_PICS 5
#else
#define BITS_PER_SEC 32 #def!ne MAX_PICS 1 #endif tfendif
#defíne DIRECT PIC WAIT LIMIT 24
#define BUFFERED PIC WAIT LIMIT 10 * BITS_PER
#define NXJM_STARTJBITS 12
#ifdefIS_ST5
#define REBUILD_DELAY 30000 tfelse
#defíne REBUILDJDELAY 1000 tfendif
xypcdef
struct {
unsigned Iong serial_number; unsigned long last_cmd_data; unsigned char PIC_addr;
unsigned char software_type;
unsigned char software version;
unsigned char loop_rate; unsigned int status_reg_value; unsigned char time since global; unsigned char num_pulse_regs; unsigned char curr_pulse_reg; unsigned char curr ID reg; unsigned char last_command;
unsigned int reply_wait_limit; unsigned int PIC_data__err_count; unsigned int PIC_reset_count; unsigned int comm_error_count; unsigned force_pulse_read: 1;
unsigned get_serno : 1;
unsigned get_version : 1; unsigned get_status : 1;
unsigned resetjstatus : 1; unsigned update_parameter: 1
unsigned clear_pulse_regs: 1;
}
PICstatust;
typedef
enum { sending bits, sendingL.st5_bits,
rcvingbits,
doPICstart,
sendingJPICjstart,
do_send_cmd,
sending_start,
sending_start_l,
sending_stop,
waiting_for_start,
rcving^stop,
idlc >
PIC_s_stat_t;
typedef
enum { SET_PRE_ALIGN, DO_ALIGN, SETNORMALPLC, DISCONNECT_COUPLER,
READ_XMIT_LEVEL >
ATM_op_t;
typedef
enum { DOJPRESET, DO_PLC_SET, SET_ALIGN, WAIT_ALIGN, DO_ATM_DISCONNECT,
ATMJDONE >
ATM_state_t;
typedef struct{
unsigned char unsigned char unsigned char unsigned Iong
PIC_addr, command;
regJDD;
command_data; unsigned int bitCount;
flags;
int union {
unsigned Iong bufLong[3]; unsigned char bufByte[12]; > bits;
}
PICbitBuf;
#ifhdef BOOLEAN_DEFINED #defíne BOOLEAN_DEFINED typedefint BOOLEAN ; #endif
/* Definition of bits in Flags field of PIC comm buffers */
/* NOTE- Top 4 bits (OxfDOO) reserved for use by ATM code */
#define rcv_bad_addr_flag OxO 1OO #define rcv_tpar_error_flag 0x0080 #define rcv_data_ready_flag 0x0040 #define rcv_bad_length_flag 0x0020 ^define rcv_timeout_flag 0x0010 #define rcv_parity_err_flag 0x0008 #define PlC_error_flag 0x0004 #define PIC_need_refresh_flag 0x0002 #defme PIC_invaIid_data_flag 0x0001
/* Command codes for PIC communication */
#define MAX_FAST_READ 0x07
^define CLEAR_PULSE_REGISTERS 0x08 ^define READREGISTER 0x10
#defme WRITE_REGISTER 0x18
#define SYSTEMjCONTROL 0x19
/* Register ID codes for PIC communication */
#define MAX_PULSE_REG 15
#define CONTROL_REG 16 tfdefine ERRORREG 26 tfdefine OUTPUT_REG 27 #define PARMREG 28
#defme VERS_REG 29
#define SERNO REG 30
#define STATUSJREG 31
/* Special-purpose PIC addresses */
#define GLOBALJPICADDR 31 #define MC5_MUX_PIC_ADDR 30 #defõne ST5_MUX_PIC_ADDR 29
#defrae LCMJB ASE_ADDR 16 /* First LCM is at address 16 *f #define ATMJB ASE_ADDR 201* First ATM is at address 20 */ #define MAX_PULSE_PIC_ADDR 15 /* pulse couters are from Oto 15 */
/* Bit usage in the ATM relay control word */ #defme ATM_RC_XMIT_ON 0x00008000 #define ATM_RC_MEAS_XMIT 0x00004000 #define ATM_RC_MEAS_CPLR 0x00002000 #define ÀTM_RC_RES_SHORTED 0x00001000
#defme ATM_RC_CAP_MASK 0x000003ff #define ATM_NUM_CAP_BITS 10
#defme ATM PRESET CODE ATM_RC_XMIT_ON | ATM_RC_MEAS_XMIT | ATM_RC_MEAS_CPLR
tfdefine ATM_PLC_CODE ATM RC XMIT ON | ATM_RC_RES_SHORTED #define ATM_DISC_CODE 0
/* Other ATM control equates */
#define ATM_MEAS_TIME 20L /* mSec to wait between cap change and ADC reading */
#defme ATM_DISC_TIME 20L /* mSec to wait before switching cap relays */ #defme ATM_MIN_READING 0x0038 /* If reading at end of autotune Iess than this, fail */
/* Equates for ST5 comm */ #define ST5_P1C_DELAY 66 ^pragma region ("ram=ram")
ref unsigned short current_PlC_index, rcv_PIC_index;
ref PIC_status_t PIC_status[MAX_PICS];
struct {
unsigned Iong reading; int error_cnt;
unsigned char ID_field[ID_FIELD_LENGTH]; unsigned char ED_bufFer[ID_FlELD_LENGTH]; } ref PulseDatapiltNUMPH];
struct {
PICbitBuf xmitbuf; PICbitBuf rcvbuf; int control_flags;
} ref ext comm, PIC_comm_mon;
struct {
ATMopt operation; unsigned int ATM_number; ATM_state_t state; unsigned request_flag: l; unsigned done_flag: 1; unsigned error_flag: 1; unsigned active_flag: 1; unsigned int start_cap_code; unsigned int end_cap_code; unsigned int optimum_cap_code; unsigned int optimum_read ing;
unsigned int xmit_Ievel;
unsigned int coupler_level;
unsigned int result_flags;
Iong int align_timer;
} ref ATM control;
struct {
unsigned request_flag : 1; unsigned donejflag: 1; unsigned error_flag: 1; unsigned active_flag: 1; unsigned int xmit_mask; unsigned int rcv_mask; unsigned int result_flags; unsigned int last_xmit_mask; unsigned int last rcv mask;
} ref MUX_control;
struct {
unsigned do_rebuiId: 1; unsigned do_alarm : 1;
} ref Comm_background_flags;
/* Bit definitions in exl_buf.control_flags */ #defíne SUPPRESS_NORMAL_COMM OxOOOl
ffdefíne XMIT_REQUEST 0x0002 Λ Externai routine requests send of xmit_buf */
#defíne CPY_RCV_DATA 0x0004 /* Externai cmd was sent, copy rcvd buffer to
rcv_buf */
#define RCV_DATA_RDY 0x0008 /* Got reply from externai cmd, reply is in
rcv_buf */
#defíne XMTT DATA RDY 0x0010 /* xmit buf has copy of Iast cmd sent */
ref PICbitBuf PICxmitBuf, PICrcvBuf, HoldrcvBuf;
ref PIC_s_stat_t PIC_serial_status;
ref unsigned int num_PICs;
ref unsigned int num_LCMs;
ref unsigned int rebuild_timer;
ref unsigned int ATM_work;
ref unsigned int work_PIC_addr;
ref unsigned int num_pulse_ctrs;
ref unsigned int hoId_numjpulse_ctrs;
ref unsigned int bit_count;
ref unsigned int out_bit_value;
ref unsigned char *shift_LSB_ptn
ref unsigned char ín_bit_value;
ref unsigned int PIC_wait_Iimit;
ef unsigned int zerojcount;
ref unsigned int last_comm_err_flag;
ref BOOLEAN dont_clear_PIC_stats;
ref int ST5_PIÇ_delay_ctr,
ref unsigned int PICJbad addr count;
ref alarmstru PIC_alarm;
#ifdef VATEST /* testüü */
ref int tef int refIong ref int
temp_command; tempjregJOD;
temp_command_data; temp_flags;
/♦testüü */ tfendif
ref enum {
clkjhigh, clk_low
> PIC_clk_state;
ref enum {
NOGLOBALSEND, SEND_GLOBAL_CLR, SENDING_GLOBAL_CLR, GLOBAL_CLR_SENT } clearjstate;
/* Old equates maintained for compatibílity */ #if O
#define RELAY_A_BIT 1 #define RELAYJB_BIT 2 #def!ne DDLE O tfdefine TX 1 #defíne RX 2 #define DATA READY 3 #define WAKE 4 ^define PIC_RESET 5
#define WAKE_COUNT_RELOAD (64*4) /* Four Seconds */
#define RESET_COUNT_RELOAD 10 /* 1/4 Seconds */
#define RELAY_A_OFF_CMD 5 /*active Iow trigger*/
tfdefine RELAY_A_ON_CMD 4
#defme RELAY_B_OFF_CMD 7
#define RELAY_B_ON_CMD 6
#define CLEA R_ACC_CMD 8
#def!ne SUBACC_CMD 12
#define ECHO_CMD 14
#defíne SLEEP_CMD 15
#defme PULSE_SERIAL_COM_MAX 15
#define WAKE CMD 16
#define RESET_CMD 17
#defínePULSE_COM_NUM 18
#define NO_PULSEJBIT_DATA OxFFFFFFFF
#define RELAY_CMD_MTN 4
#define RELAY_CMD_MAX 7
tfendif PULSEOUTM.DEF
rfinclude "clklink.def' #include "mtrlink.def'
#include "plc.def' #include "serlink.def' #include "pulselink.def"
#ifhdefNO_PULSES
#include "scan.h" #include "pulse.h" #include "log.h"
void pulseovrt__second_back(void);
void pulseout_ram_init1(void);
ADDRFN pulseoutaddrfn ;
#pragma region ("data=ramlnitl")
void (*pulseout_ram_init 1 p)(void)=puIseout_ram_initl;
#pragma region ("data=data,,)
#pragma region ("data=secondBack")
void (*puIseout_second_backp)(void)=pulseout_second_back; #pragma region ("data=data")
ADDRFNRET pulscoutaddr£h(reg8stru reg8) {
/*iwrite the Ioad shed event to flash */ putEvent(LOAD_SHED_EVENT,l,andreg8.ulong);
retum(O);
>
void pulseout_ram_initl0 {
addrfn_tbI[GET_FROM_SLAVE]DPULSEOUT_STATE] = pulseoutaddrfn
>
void pu!seout_second_back()
r <
}
sfendif
Claims (37)
1. Aparelho para medição de multi-canal de eletricidade, caracterizado pelo fato de que compreende: uma cabeça de medidor que compreende um ou mais pontos medidores, a cabeça de medidor operável para medir uso de eletricidade para uma pluralidade de linhas de consumidor de eletricidade; um transponder em comunicação por comunicação de linha de potência com dita cabeça de medidor e operável para transmitir dados recebidos de dita cabeça de medidor para um computador localizado remotamente, e para transmitir à cabeça de medidor, por comunicação de linha de potência, dados recebidos do dito computador localizado remotamente; e um ou mais módulos de controle de carga em comunicação com dita cabeça de medidor e operáveis para atuar cada um de uma pluralidade de relês, cada relê de dita pluralidade de relês operável para serviço de conectar e desconectar em uma da pluralidade de linhas de consumidor de eletricidade.
2. Aparelho de acordo com reivindicação 1, caracterizado pelo fato de que compreende ainda um detector de fraude em comunicação com dita cabeça de medidor.
3. Aparelho de acordo com reivindicação 2, caracterizado pelo fato de que dito detector de fraude inclui uma luz e uma superfície reflexiva, e em que dita cabeça de medidor é operável para instruir dito um ou mais módulos de controle de carga para desconectar todas de ditas linhas de cliente se dito detector de fraude prover notificação que dita luz não é detectada refletindo de dita superfície reflexiva.
4. Aparelho de acordo com reivindicação 2, caracterizado pelo fato de que compreende ainda uma caixa contendo dita cabeça de medidor, dito um ou mais módulos de controle de carga, e ditos relês, e em que dito detector de fraude inclui um detector de luz ambiente entrando na caixa.
5. Aparelho de acordo com reivindicação 1, caracterizado pelo fato de que compreende ainda um dispositivo para comparar energia de transformador à energia total usada por ditas linhas de consumidor.
6. Aparelho de acordo com reivindicação 1, caracterizado pelo fato de que compreende ainda um dispositivo para detectar fluxo de corrente inversa por ditas linhas de consumidor.
7. Aparelho de acordo com reivindicação 1, caracterizado pelo fato de que compreende ainda uma memória legível por computador em comunicação com dita cabeça de medidor e um contador em comunicação com dita cabeça de medidor, dito contador correspondendo a uma linha de cliente e operável para contar regressivamente uma quantidade de energia armazenada em dita memória, e dita cabeça de medidor operável para enviar um sinal de desconexão para um módulo de controle de carga correspondente para desconectar dita linha de cliente quando dito contador alcança zero.
8. Aparelho de acordo com reivindicação 1, caracterizado pelo fato de que compreende ainda uma memória legível por computador em comunicação com dita cabeça de medidor, dita memória operável para armazenar um limite de carga para uma linha de cliente, e dita cabeça de medidor operável para enviar um sinal de desconexão para um módulo de controle de carga correspondente para desconectar dita linha de cliente quando dito limite de carga é excedido.
9. Aparelho de acordo com reivindicação 1, caracterizado pelo fato de que compreende ainda uma memória legível por computador em comunicação com dita cabeça de medidor, dita memória operável para armazenar um limite de uso para uma linha de cliente, e dita cabeça de medidor operável para enviar um sinal de desconexão para um módulo de controle de carga correspondente para desconectar dita linha de cliente quando dito limite de uso é excedido.
10. Aparelho de acordo com reivindicação 1, caracterizado pelo fato de que dito transponder é operável para se comunicar com dito computador localizado remotamente através de linhas de potência de média tensão.
11. Aparelho de acordo com reivindicação 1, caracterizado pelo fato de que compreende ainda uma unidade de exibição em comunicação com dita cabeça de medidor e operável para exibir dados recebidos de dita cabeça de medidor.
12. Aparelho de acordo com reivindicação 11, caracterizado pelo fato de que dita unidade de exibição é operável para exibir informação relativa a consumo de energia de um cliente.
13. Aparelho de acordo com reivindicação 11, caracterizado pelo fato de que dita unidade de exibição é operável para exibir advertências relativas a uso de energia de um cliente ou a suspeito roubo de energia.
14. Aparelho de acordo com reivindicação 11, caracterizado pelo fato de que dita unidade de exibição é operável para transmitir para dita cabeça de medidor informação entrada por um cliente.
15. Aparelho para medição remota de multi-canal de eletricidade usando comunicação de linha de potência, caracterizado pelo fato de que compreende: uma pluralidade de pontos medidores localizados em um lado secundário de um transformador e operáveis para medir separadadamente uso de eletricidade para cada uma de uma pluralidade de linhas de consumidor de eletricidade; o aparelho em comunicação direta com um transponder localizado em um lado primário do transfornmador e operável para transmitir dados para e receber dados do transponder por comunicação de linha de potência direta, o transponder operável para transmitir dados para e para receber dados de um computador localizado remotamente; o aparelho operável para controlar um ou mais módulos de controle de carga operáveis para atuar conexão e desconexão de cada um de uma pluralidade de relês, cada relê da pluralidade de relês correspondendo a uma da pluralidade de linhas de consumidor de eletricidade; e uma caixa contendo a pluralidade de pontos medidores, o módulo de controle de carga, e os relês, em que o transformador de distribuição converte voltagens de distribuição de média tensão em voltagens de baixa tensão apropriadas para fornecer energia aos consumidores, e em que o aparelho é operável para injetar sinais em e receber sinais de linhas de potência de baixa tensão que abastecem consumidores com energia elétrica; ditos sinais provendo comunicação de via dupla entre a cabeça de medidor e o transponder, e atravessando o transformador de distribuição.
16. Aparelho de acordo com reivindicação 15, caracterizado pelo fato de que compreende ainda um detector de fraude em comunicação com dita cabeça de medidor.
17. Aparelho de acordo com reivindicação 16, caracterizado pelo fato de que dito detector de fraude inclui uma luz e uma superfície reflexiva, e em que dita cabeça de medidor é operável para instruir dito módulo de controle de carga para desconectar todas de ditas linhas de cliente se dito detector de fraude prover notificação que dita luz não é detectada refletindo de dita superfície reflexiva.
18. Aparelho de acordo com reivindicação 16, caracterizado pelo fato do dito detector de fraude incluir um detector de luz ambiente entrando na caixa.
19. Aparelho de acordo com reivindicação 15, caracterizado pelo fato de que compreende ainda um dispositivo para comparar energia de transformador à energia total usada por ditas linhas de consumidor.
20. Aparelho de acordo com reivindicação 15, caracterizado pelo fato de que compreende ainda um dispositivo para detectar fluxo de tensão inversa por ditas linhas de consumidor.
21. Aparelho de acordo com reivindicação 15, caracterizado pelo fato de que compreende ainda uma memória legível por computador em comunicação com dita cabeça de medidor e um contador em comunicação com dita cabeça de medidor, dito contador correspondendo a uma linha de cliente e operável para contar regressivamente uma quantidade de energia armazenada em dita memória, e dita cabeça de medidor operável para enviar um sinal de desconexão ao módulo de controle de carga para desconectar dita linha de cliente quando dito contador alcança zero.
22. Aparelho de acordo com reivindicação 15, caracterizado pelo fato de que compreende ainda uma memória legível por computador em comunicação com dita cabeça de medidor, dita memória operável para armazenar um limite de carga para uma linha de cliente, e dita cabeça de medidor operável para enviar um sinal de desconexão para o módulo de controle de carga para desconectar dita linha de cliente quando dito limite de carga é excedido.
23. Aparelho de acordo com reivindicação 15, caracterizado pelo fato de que compreende ainda uma memória legível por computador em comunicação com dita cabeça de medidor, dita memória operável para armazenar um limite de uso para uma linha de cliente, e dita cabeça de medidor operável para enviar um sinal de desconexão para o módulo de controle de carga para desconectar dita linha de cliente quando dito limite de uso é excedido.
24. Aparelho de acordo com reivindicação 15, caracterizado pelo fato de que dito transponder é operável para se comunicar com dito computador localizado remotamente através de linhas de potência de média tensão.
25. Aparelho de acordo com reivindicação 15, caracterizado pelo fato de que compreende ainda uma unidade de exibição em comunicação com dita cabeça de medidor e operável para exibir dados recebidos de dita cabeça de medidor.
26. Aparelho de acordo com reivindicação 25, caracterizado pelo fato de que dita unidade de exibição é operável para exibir informação relativa a consumo de energia de um cliente.
27. Aparelho de acordo com reivindicação 25, caracterizado pelo fato de que dita unidade de exibição é operável para exibir advertências relativas a uso de energia de um cliente ou a suspeito roubo de energia.
28. Aparelho de acordo com reivindicação 25, caracterizado pelo fato de que dita unidade de exibição é operável para transmitir para dita cabeça de medidor informação entrada por um cliente.
29. Aparelho de acordo com reivindicação 15, caracterizado pelo fato do transponder ser operável para se comunicar com o computador localizado remotamente via pelo menos um de: comunicações de rádio, fibra óptica, e linhas telefônicas.
30. Aparelho de acordo com reivindicação 15, caracterizado pelo fato de ser operável para transmitir dados diretamente ao transponder a freqüências dentro da faixa de 10 a 25 kHz.
31. Aparelho de acordo com reivindicação 15, caracterizado pelo fato de ser operável para transmitir dados diretamente ao transponder a freqüências correspondendo a harmônicos meio ímpares de 60 Hz.
32. Aparelho para medição de multi-canal de eletricidade, caracterizado pelo fato de que compreende: um módulo de controle em comunicação com um circuito secundário de um transformador de distribuição, em que o transformador de distribuição converte voltagens de distribuição de média tensão em voltagens de baixa tensão apropriadas para fornecer energia aos consumidores; o módulo de controle em comunicação direta com um transponder em comunicação com um circuito primário do transformador e operável para transmitir dados para e receber dados do transponder por comunicação de linha de potência direta, através do transformador de distribuição, o transponder operável para transmitir dados para e para receber dados de um computador localizado remotamente; uma pluralidade de módulos de medição em comunicação com o módulo de controle, cada módulo de medição operável para medir uso de eletricidade em uma de uma pluralidade de linhas de consumidor de eletricidade alimentadas pelo circuito secundário do transformador de distribuição; um ou mais relês em comunicação com o módulo de controle e operáveis para atuar conexão e desconexão de eletricidade às linhas de consumidor de eletricidade; e uma caixa contendo o módulo de controle, os módulos de medição e os relês, em que o aparelho é operável para injetar sinais em e receber sinais de linhas de potência de baixa tensão que abastecem consumidores com energia elétrica; ditos sinais provendo comunicação de via dupla entre a cabeça de medidor e o transponder, e atravessando o transformador de distribuição para se comunicar, pelo menos parcialmente, sobre linhas de potência de média tensão, com o computador localizado remotamente.
33. Aparelho de acordo com reivindicação 32, caracterizado pelo fato do um ou mais relês serem operáveis para controlar cada fase das linhas de consumidor de eletricidade.
34. Aparelho de acordo com reivindicação 32, caracterizado pelo fato do transponder ser operável para transmitir dados para e receber dados de um computador localizado remotamente via um ou mais transponders intermediários.
35. Aparelho para medição remota de multi-canal de eletricidade usando comunicação de linha de potência, caracterizado pelo fato de que compreende: uma pluralidade de pontos medidores localizados em um lado secundário de um transformador e operáveis para medir separadadamente uso de eletricidade para cada uma de uma pluralidade de linhas de consumidor de eletricidade; o aparelho em comunicação com um transponder localizado em um lado primário do transfornmador e operável para transmitir dados para e receber dados do transponder por comunicação de linha de potência, o transponder operável para transmitir dados para e para receber dados de um computador localizado remotamente; um ou mais módulos de controle de carga em comunicação com a cabeça de medidor e operáveis para atuar cada um de uma pluralidade de relês, cada relê da pluralidade de relês operável para serviço de conectar e desconectar em uma da pluralidade de linhas de consumidor de eletricidade; e uma caixa contendo a pluralidade de pontos medidores, o módulo de controle de carga, e os relês, em que o transformador de distribuição converte voltagens de distribuição de média tensão em voltagens de baixa tensão apropriadas para fornecer energia aos consumidores, e em que o aparelho é operável para injetar sinais em e receber sinais de linhas de potência de baixa tensão que abastecem consumidores com energia elétrica; ditos sinais provendo comunicação de via dupla entre a cabeça de medidor e o transponder, e atravessando o transformador de distribuição.
36. Aparelho para medição de multi-canal de eletricidade, caracterizado pelo fato de que compreende: uma cabeça de medidor localizada em um lado secundário de um transformador e operável para medir separadadamente uso de eletricidade para cada uma de uma pluralidade de linhas de consumidor de eletricidade; a cabeça de medidor em comunicação direta com um transponder localizado em um lado primário do transfornmador operável para transmitir dados para e receber dados do transponder por comunicação de linha de potência direta, o transponder operável para transmitir dados para e para receber dados de um computador localizado remotamente; um módulo de controle de carga em comunicação com a cabeça de medidor e operável para atuar conexão e desconexão de cada um de uma pluralidade de relês, cada relê da pluralidade de relês correspondendo a uma da pluralidade de linhas de consumidor de eletricidade; e uma caixa contendo a cabeça de medidor, o módulo de controle de carga, e os relês.
37. Aparelho para medição de multi-canal de eletricidade, caracterizado pelo fato de que compreende: um módulo de controle em comunicação com um circuito secundário de um transformador de distribuição; o módulo de controle em comunicação direta com um transponder em comunicação com um circuito primário do transformador e operável para transmitir dados para e receber dados do transponder por comunicação de linha de potência direta, através do transformador de distribuição, o transponder operável para transmitir dados para e para receber dados de um computador localizado remotamente; uma pluralidade de módulos de medição em comunicação com o módulo de controle, cada módulo de medição operável para medir uso de eletricidade em uma de uma pluralidade de linhas de consumidor de eletricidade alimentadas pelo circuito secundário do transformador de distribuição; um ou mais relês em comunicação com o módulo de controle e operáveis para atuar conexão e desconexão de eletricidade para as linhas de consumidor de eletricidade; e uma caixa contendo o módulo de controle, os módulos de medição, e os relês.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| BRPI0806143-2A BRPI0806143B1 (pt) | 2008-06-27 | 2008-06-27 | Aparelhos para medição de multi-canal de eletricidade |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| BRPI0806143-2A BRPI0806143B1 (pt) | 2008-06-27 | 2008-06-27 | Aparelhos para medição de multi-canal de eletricidade |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| BRPI0806143A2 true BRPI0806143A2 (pt) | 2012-05-08 |
| BRPI0806143B1 BRPI0806143B1 (pt) | 2019-04-30 |
Family
ID=46001902
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI0806143-2A BRPI0806143B1 (pt) | 2008-06-27 | 2008-06-27 | Aparelhos para medição de multi-canal de eletricidade |
Country Status (1)
| Country | Link |
|---|---|
| BR (1) | BRPI0806143B1 (pt) |
-
2008
- 2008-06-27 BR BRPI0806143-2A patent/BRPI0806143B1/pt active IP Right Grant
Also Published As
| Publication number | Publication date |
|---|---|
| BRPI0806143B1 (pt) | 2019-04-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7596459B2 (en) | Apparatus and methods for multi-channel electric metering | |
| EP1805523B1 (en) | Method and apparatus for an electric meter | |
| US5994892A (en) | Integrated circuit design automatic utility meter: apparatus & method | |
| US8378844B2 (en) | Utility meter with external signal-powered transceiver | |
| US9161102B2 (en) | Meter device with supporting communications | |
| US8253585B2 (en) | Three-phase multifunction verifier | |
| ES2441617T3 (es) | Sistema y método para supervisión y facturación en línea de consumo de potencia | |
| GB2379993A (en) | Electrical energy consumption and generation metering arrangement | |
| CN118837599A (zh) | 基于双模通信的多功能小型智能电能表 | |
| JP2006284382A (ja) | 電子式電力量計 | |
| CN101351803B (zh) | 用于多通道电力计量的装置和方法 | |
| BRPI0806143B1 (pt) | Aparelhos para medição de multi-canal de eletricidade | |
| CA2527068C (en) | Apparatus and methods for multi-channel metering | |
| CA2567955A1 (en) | Apparatus and methods for multi-channel metering | |
| KR100316485B1 (ko) | 다세대용전자식전력량계 | |
| MX2008007018A (en) | Apparatus and methods for multi-channel metering | |
| RU2234707C1 (ru) | Устройство для измерения электрической энергии с защитой от хищений | |
| EP0742442A2 (en) | Improvements in or relating to modulised utility meters | |
| BR202023010862U2 (pt) | Dispositivo de comunicação sem fio para medidores de energia elétrica dotados de porta serial unidirecional assíncrona. | |
| RU117013U1 (ru) | Цифровой счетчик электрической энергии | |
| TR2025013271U5 (tr) | Bi̇r elektri̇k enerji̇si̇ ölçüm sayaci | |
| US10051348B2 (en) | Power metering devices, methods, and systems | |
| TR2021021340U5 (tr) | Nötr Bağlı Olmamasına Rağmen Ölçüm Yapmaya Devam Edebilen Elektrik Sayacı | |
| JPH0735779A (ja) | ロードサーベイシステム端末 | |
| RU55149U1 (ru) | Счетчик электрической энергии трехфазный |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| B06G | Technical and formal requirements: other requirements [chapter 6.7 patent gazette] |
Free format text: SOLICITA-SE A REGULARIZACAO DA PROCURACAO, UMA VEZ QUE BASEADO NO ARTIGO 216 1O DA LPI, O DOCUMENTO DE PROCURACAO DEVE SER APRESENTADO NO ORIGINAL, TRASLADO OU FOTOCOPIA AUTENTICADA. |
|
| B03A | Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette] | ||
| B06T | Formal requirements before examination [chapter 6.20 patent gazette] | ||
| B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
| B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
| B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 30/04/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 30/04/2019, OBSERVADAS AS CONDICOES LEGAIS |