Q Casino in Yuma & YUP! Another trip 2 Algodones! 😎 Full-time RV Living & Life Vlog 🌎🚐
BRASIL BAHIA SHOW - Casino Korona - Slovenia 04.08.2018
casino miraflores
Cómo se juega baccarat! #casino #gamblingschool #poker #loteria #baccarat #baccaratstricks #cards
Betmexico y triple lavada
Printing money at Sunset Station, Hotel and Casino #gambling #lasvegas #roulette #slots #casino
Imperial Koi Feature
Casino (1995) HD: Joe Pesci's Nicky Santoro's Unforgettable Blackjack Scene.
PlayCity Casino 2011
casino-online-new-jersey
casino-simulation-game
el-patrullero-777-pelcula-completa
las-vegas-best-slots
free-slots-dolphin-treasure
Shogun Male Enhancement
Cbd Oil For Male Enhancement Amazon
Cbd Gummies Jackson Tn
At Home Exercises For Weight Loss
Benefits Of Skipping Dinner For Weight Loss

Quantos Loops de PID podem ser configurados em um M580

Introdução

Quantos loops PID podem ser configurados em um sistema M580?

Qual será o tempo de varredura típico do controlador para 100 malhas fechadas?

Acima estão algumas perguntas típicas que muitos de nós podem ter ouvido durante nossas discussões técnicas com o usuário final. No entanto, essas perguntas são genuínas, não temos nenhuma evidência documental ou representação técnica conosco para responder.

Houve um debate entre o grupo de especialistas técnicos, no entanto, cada indivíduo tem suas próprias interpretações.

Alguns fornecedores dizem que não há limitação…

Alguém diz que meu sistema é capaz de lidar com saídas analógicas “2K”, portanto, posso configurar loops PID de 2K.

Mesmo que essas declarações pareçam convincentes, praticamente não é viável configurar 2K / loops ilimitados em um único sistema de controle dentro do tempo de varredura desejado. É bom conhecer os fatos e as capacidades do sistema antes de submeter a conformidade com as especificações da EU.

O fato é que, a capacidade PID pode ser derivada apenas com base na memória do controlador

Um POC foi realizado para resumir os recursos do Sistema M580 em relação ao manuseio do PID e seu impacto no tempo de varredura.

Arquitetura usada e pré-requisitos

  1. O controlador M580 HSBY (BMEH58 6040) foi considerado para POC com 1 X80 RIO drop
  2. O Unity V13 foi usado para criar aplicativos.
  3. Conhecimento M580 + Unity Pro
  4. Entender a estrutura de memória interna do M580
  5. Conhecimento em configuração do PID
Archtecture

Metodologia POC

> Work Flow

> Step 1 – Descubra o tempo de varredura ideal do M580

  1. Configure o controlador M580 HSBY (BMEH58 6040) com 1 X80 RIO drop conforme a arquitetura.
  2. Faça Download da aplicação sem qualquer código e capture o tempo de varredura do M580..

> Step 2 – Descubra os requisitos de memória para PIDFF (usando EF da biblioteca de unidade)

  1. Além da Step 1, configure um PIDFF com todas as funcionalidades em uma seção DFB, baixe o aplicativo e meça o tempo de varredura do M580, os requisitos de memória.
  2. Registre os requisitos de memória para 1 loop PID comparando a step 2 e a step 1
  3. Adicione mais blocos PIDFF (10,20,30….até 100) com todas as funcionalidades em uma seção DFB, baixe o aplicativo e meça o tempo de varredura do M580, os requisitos de memória.
  4. Registre a média de memória de dados consumida e verifique a consistência do tempo de varredura.

> Step 3 – Carregar o controlador M580 com lógica de aplicação + malhas PID (até 100 malhas com EF e 100 malhas com DFB)

  1. Além da Step 2, configure um PIDFF com todas as funcionalidades em uma seção DFB, baixe o aplicativo e meça o tempo de varredura do M580, os requisitos de memória.
  2. Repita o procedimento 2,3,4 acima mencionado no Step 2.

> Step 4 – Carregar o controlador M580 com lógica de aplicação + malhas PID (até 100 malhas com EF e 100 malhas com DFB)

  1. Em continuação ao step 3 … Carregar o controlador M580 com lógica de aplicação de preferência de um projeto real.
  2. Registre o tempo de varredura, disponibilidade de memória do controlador M580.
  3. Adicione 100 loops PID (EF) junto com o código do aplicativo e registre a variação do tempo de varredura e os requisitos de memória.
  4. Adicione 100 loops PID (DFB) junto com o código do aplicativo e registre a variação do tempo de varredura e os requisitos de memória.

> Step 5 – Conclusão


> Step 1 – Descubra o tempo de varredura ideal do M580 SCPU
  1. Configure o controlador M580 HSBY (BMEH58 6040) com 1 X80 RIO drop conforme a arquitetura.
  2. Faça download do aplicativo sem qualquer código e capture o tempo de varredura do M580.

M580 HSBY Tempo de varredura registrado como 1 ms , sem nenhum código de aplicativo.

Step 2 – Descubra os requisitos de memória para PIDFF (usando EF da biblioteca de unidade)

  1. Além da Etapa 1, configure um PIDFF com todas as funcionalidades em uma seção DFB, baixe o aplicativo e meça o tempo de varredura do M580, os requisitos de memória.
  2. Registre os requisitos de memória para 1 loop PID comparando a etapa 2 e a etapa 1
  3. Adicione mais blocos PIDFF (10,20,30….até 100) com todas as funcionalidades em uma seção DFB, baixe o aplicativo e meça o tempo de varredura do M580, os requisitos de memória.
  4. Registre a média de memória de dados consumida e verifique a consistência do tempo de varredura.

Para 1 Loop PID

M580 HSBY Tempo de varredura registrado como 1 ms , sem nenhum código de aplicativo.

A memória de dados consumida é de 2656 bytes e o código executável é de 8928 bytes;

Para 10 Loops PID

M580 HSBY Tempo de varredura registrado como 1 ms , sem nenhum código de aplicativo.

A memória de dados consumida é de 4928 bytes e o código executável é de 1064 bytes;

Para 20 Loops PID

M580 HSBY Tempo de varredura registrado como 2 ms , sem nenhum código de aplicativo.

A memória de dados consumida é de 7408 bytes e o código executável é de 13520 bytes;

Para 50 Loops PID

M580 HSBY Tempo de varredura registrado como 2 ms , sem nenhum código de aplicativo.

A memória de dados consumida é de 14864 bytes e o código executável é de 21744 bytes;

O atributo alt desta imagem está vazio. O nome do arquivo é image-5.png



Para 100 Loops PID

M580 HSBY Tempo de varredura registrado como 3 ms , sem nenhum código de aplicativo.

A memória de dados consumida é de 27.280 bytes e o código executável é de 36.384 bytes;

  1. Além da Etapa 1, configure um PIDFF com todas as funcionalidades em uma seção DFB, baixe o aplicativo e meça o tempo de varredura do M580, os requisitos de memória.
  2. Registre os requisitos de memória para 1 loop PID comparando a etapa 2 e a etapa 1
  3. Adicione mais blocos PIDFF (10,20,30….até 100) com todas as funcionalidades em uma seção DFB, baixe o aplicativo e meça o tempo de varredura do M580, os requisitos de memória.
  4. Registre a média de memória de dados consumida e verifique a consistência do tempo de varredura.
Dados registrados

> Memory consumed for 10 PID loops is 4928 bytes

> Memory consumed for 20 PID loops is 7408 bytes. Hence for 1 PID loop 7408 – 4928 / 10 = 248 bytes

> Memory consumed for 50 PID loops is 14864 bytes. Hence for 1 PID loop 14864 – 7408 / 30 = 248 bytes

> Memory consumed for 100 PID loops is 27280 bytes.Hence for 1 PID loop 27280 -14864 / 50 = 248 bytes > Higher vale considered as 250 bytes


> Executable code for 10 PID loops is 10864 bytes.

> Executable code for 20 PID loops is 13520 bytes. Hence for 1 PID loop 13520 – 10864 / 10 = 265 bytes

> Executable code for 50 PID loops is 21744 bytes. Hence for 1 PID loop 21744 – 13520 / 30 = 274 bytes

> Executable code for 100 PID loops is 36384 bytes. Hence for 1 PID loop 36384 – 21744 / 50 = 292 bytes - Higher vale considered as 300 bytes

O tempo de varredura não tem muito impacto. Por isso não é levado em consideração.

Para fins de discussão, é anotado como 2-3 ms

> Step 3 – Descubra os requisitos de memória para PIDFF (usando DFB da biblioteca PES/hDCS)

  1. Além da Etapa 2, configure um PIDFF com todas as funcionalidades em uma seção DFB, baixe o aplicativo e meça o tempo de varredura do M580, os requisitos de memória.
  2. Repita o procedimento acima 2,3,4 mencionado na Etapa 2
> Dados registrados

> Memory consumed for 10 PID loops is 6352 bytes1ms Scan Time

> Memory consumed for 20 PID loops is 10672 bytes. Hence for 1 PID loop 10672 – 6352 / 10 = 432 bytes2ms Scan Time

> Memory consumed for 50 PID loops is 23632 bytes. Hence for 1 PID loop 23632 – 10672 / 30 = 432 bytes3ms Scan Time

> Memory consumed for 100 PID loops is 45392 bytes.Hence for 1 PID loop 45392 - 23632 / 50 = 435 bytes5ms Scan Time

> Higher vale considered as 435 bytes


> Executable code for 10 PID loops is 16848 bytes.

> Executable code for 20 PID loops is 20320 bytes. Hence for 1 PID loop 20320 – 16848 / 10 = 347 bytes

> Executable code for 50 PID loops is 33103 bytes. Hence for 1 PID loop 33103 – 20320 / 30 = 426 bytes

> Executable code for 100 PID loops is 54224 bytes. Hence for 1 PID loop 54224 – 33103 / 50 = 422 bytes > Higher vale considered as 426 bytes


O tempo de varredura não tem muito impacto. Por isso não é levado em consideração.

Para fins de discussão, é anotado como 3-5 ms

> Step 4 – Carregue o controlador M580 com lógica de aplicação + loops PID (até 100 loops com EF e 100 loops com DFB)

  1. Em continuação ao passo 3 … Carregue o controlador M580 com lógica de aplicação preferencialmente de um projeto real.
  2. Registre o tempo de varredura, disponibilidade de memória do controlador M580
  3. Adicione 100 loops PID (EF) junto com o código do aplicativo e registre a variação do tempo de varredura e os requisitos de memória.
  4. Adicione 100 loops PID (DFB) junto com o código do aplicativo e registre a variação do tempo de varredura e os requisitos de memória.

Dados registrados

> Memory consumed for application code without PID loops is 354512 bytes.

> Memory consumed for 20 PID loops is 359552 bytes. Hence for 1 PID loop 359552 – 354512 / 10 = 252 bytes

> Memory consumed for 50 PID loops is 367136 bytes. Hence for 1 PID loop 367136 – 359552 / 30 = 252 bytes

> Memory consumed for 100 PID loops is 379712 bytes.Hence for 1 PID loop 379712 – 367136 / 50 = 252 bytes

> Memory consumed for 200 PID loops(EF+DFB) is 423120 bytes. Hence for 1 PID loop 423120 – 379712 / 100 = 434 bytes > Higher vale considered as 252 bytes , 435 bytes for EF&DFB respectively.


> Executable code loaded is 3234976 bytes without PID loops

> Executable code for 20 PID loops is 3239984 bytes. Hence for 1 PID loop 3239984 – 3234976 / 10 = 250 bytes

> Executable code for 50 PID loops is 3248496 bytes. Hence for 1 PID loop 3248496 – 3239984 / 30 = 283 bytes > Executable code for 100 PID loops is 3263888 bytes. Hence for 1 PID loop 3263888 – 3248496 / 50 = 307 bytes > Higher valve considered as 307 bytes.


Tempo de varredura 36 ms apenas com o código do aplicativo

41 ms com 100 loops

49 ms com 200 loops. 49-36 = 13 ms

Maior valor considerado como 20 ms para 200 loops.

> Step 5 – Conslusão

 EFDFBRemarks
 For 1 PID Loop 
Data Memory252 Bytes435 Bytes 
Executable Code307 Bytes426 Bytes 
Scan Time20 ms20 msFor 200 loops + add 20 ms system overheads to compensate site conditions and real project environment.
  1. Ex: Estime o desempenho da CPU autônoma M580 Nível 2 (P2040)
  • Suponha que 40% da memória de dados usada para lógica do aplicativo e 40% sejam deixados livres para uso futuro.
  • Significa praticamente que ficamos de fora com 20% de memória, ou seja, 150 Kbytes disponíveis.
  • Suponha projeto implantado usando hDCS..

Cálculo:

  • 153600 bytes / 435 = 350 Loops podem ser configurados
  • 534 * 426 = 222 KB de código executável serão consumidos.
  • Tempo de varredura: 8 gotas RIO precisam de min 12 ms + código executável 60 ms (aprox para 10K IO) + PID 40 ms + overheads 20 ms
  • Total: 132ms

Nota:

Os parâmetros capturados são para o sistema HSBY e usados para a configuração do controlador autônomo para atingir os valores ideais.

20 ms Overhead é para compensar as condições reais do processo em relação à bancada de teste.

A ideia é derivar aprox. valores, os valores reais podem ser ligeiramente diferentes.

Related Articles

Responses