1. ActiveX, que [coisa] e essa?ActiveX e um modelo para construcao de componentes padronizado pela Microsoft. Esse padrao define como a interface (interacao e comunicacao) entre controle e container (sistema que hospeda o componente) deve ser realizada.2. Nao entendi [coisa] nenhuma, qual e o objetivo?Uma vez que os principais sistemas de supervisao (InTouch, WinCC, FactoryTalk, iFix) desempenham o papel de container, a reutilizacao e o primeiro objetivo para construcao de ActiveX, ou seja, o esforco de criacao e realizado uma unica vez e o componente pode ser reaproveitado nos demais sistemas SCADA.3. Ferramenta (VB6 versus .NET)Esse post e direcionado para criacao de componentes ActiveX em Visual Basic 6. Algumas pessoas questionarao a velhice do VB6. Para estas a minha resposta: o VB6 ainda resolve muitos problemas na automacao, mais especificamente, nos sistemas de supervisao. No caso .NET o mesmo desenvolvimento e, definitivamente, mais complexo, uma vez que deve ser construida uma DLL COM em vez de um OCX (pode ser tema de outro post).4. DesenvolvimentoPara acompanhar esse post sera necessario uma maquina virtual com o Visual Basic 6 Service Pack 6 instalado, dessas que muitos, porem nem todos, ja providenciaram junto ao revendedor nao autorizado Microsoft. A ideia sera criar um controle que realize as operacoes de uma valvula On/Off. Na pratica, esse componente devera ser utilizado apenas para fins didaticos.4.1. Criacao do ProjetoSeria muito enfadonha a elucidacao tela-a-tela para a construcao de um ActiveX e nao retornaria resultados expressivos, dessa forma, visando maximizar a producao de posts, o metodo sucinto de explicacao ja amplamente praticado pelos profissionais de meu convivio sera utilizado. Da mesma maneira, as rotineiras expressoes como exibe a figura abaixo, como mostra a figura abaixo, como apresentado na figura abaixo serao evitadas.Passo 1: Na interface New Project selecione ActiveX Control.Passo 2: Renomear o projeto para IHMControls.Passo 3: Renomear o controle para IHMFlowValve.Passo 4: Adicionar e renomear um controle Shape;Passo 5: Redimensionar o formulario para o tamanho exato do componente. Passo 6: Adicionar o codigo que redimensiona, automaticamente, o shape de acordo com o tamanho do formulario configurado pelo usuario final. E, importante, nao se deixe confundir pelas longas frases deste post, o lado Saramago sera largamente utilizado.4.2. PropriedadesAs propriedades CorAberta e CorFechada deverao ser criadas para permitir a ferramenta SCADA definir as cores associadas aos estados da valvula sem a necessidade de modificacao do codigo-fonte do ActiveX. Para realizacao dessa etapa, adicionar a logica abaixo. Repare a dupla de procedimentos (Get e Let) para cada propriedade. Get e responsavel por fornecer ao container (SCADA) o valor armazenado da propriedade, enquanto Let e responsavel por receber do container (SCADA) o valor desejado para a mesma propriedade.4.3. MetodosAnalogo as caracteristicas (propriedades) da valvula, existem as acoes (metodos) realizadas pelo componente. Para implementacao dos metodos Abrir e Fechar, adicionar a logica abaixo. Repare que o escopo desses metodos precisara ser publico, uma vez que deverao ser chamados pelo sistema de supervisao. Para verificacao do estado da valvula duas propriedades somente leitura (nao possuem Let) serao adicionadas. 4.4. EventosPara finalizar a comunicacao do componente com o container, devera ser adicionado o evento