- Impressão
Integração do Rockwell FactoryTalk Optix
Objetivo
Este guia explica passo a passo como integrar o Tulip com o software FactoryTalk Optix HMI Visualization da Rockwell Automation.
As aplicações Tulip podem ser totalmente integradas às IHMs FactoryTalk Optix, o que significa que uma aplicação Tulip pode ser executada diretamente no FactoryTalk Optix e a comunicação bidirecional entre as plataformas de software é possível. Isso permite que o operador tenha acesso ao Tulip diretamente em sua HMI, ao mesmo tempo em que permite que o Tulip acesse todos os dados relevantes da máquina e da HMI.
Caso de uso
Temos uma demonstração dessa integração em nosso Tulip Experience Center (TEC) para um caso de uso do Bioreactor eBR. Nesse exemplo, os dados da máquina em tempo real, os alarmes abertos e a tela atual do Optix estão sendo enviados do FTOptix HMI para o Tulip usando OPC UA. Tudo isso aparece no Tulip como uma máquina Tulip, que pode ser usada em aplicativos, em automações ou com Machine Triggers para fornecer lógica com base nesses dados. Os Tulip Connectors são usados para enviar valores de setpoint de volta para a máquina, bem como para controlar a tela que é exibida na Optix HMI.
Como fazer
Executar o Tulip no FactoryTalk Optix
Os aplicativos Tulip podem ser executados diretamente no FactoryTalk Optix usando a funcionalidade iframe. O Optix permite que o usuário incorpore um navegador da Web diretamente em sua HMI, que é então usado para executar o Tulip.
- Adicione um navegador da Web em sua HMI Optix clicando com o botão direito do mouse em UI > New > Contents > Web Browser.
- Selecione o navegador da Web e visualize a guia Properties (Propriedades) no lado direito da tela.
- Defina o URL como
https://<your-instance>.tulip.co/player?appId=<your-app-id>.
O ID do aplicativo pode ser encontrado abrindo o aplicativo desejado na instância do Tulip e, em seguida, visualizando o URL exibido no navegador. O URL seguirá o formato https://<your-instance>.tulip.co/w/<your-app-id>/process/....
Se não quiser iniciar em um aplicativo específico, você pode definir o URL como https://<your-instance>.tulip.co/player
.
Enviar dados do Optix para o Tulip
Há vários protocolos que podem ser usados para enviar dados entre a Tulip e a Optix.
Os dados podem ser enviados para o Tulip a partir do Optix usando OPC UA. A Optix hospeda um servidor OPC UA, enquanto a Tulip pode utilizar sua funcionalidade de cliente OPC-UA para receber esses dados em uma máquina Tulip. Se você não souber como criar e editar uma Tulip Machine, consulte ....
- Clique com o botão direito do mouse na pasta OPC-UA no Optix e selecione New > OPC UA server (Novo > servidor OPC UA).
- Selecione o servidor OPC UA e visualize a guia Properties (Propriedades) no lado direito da tela.
- Insira o URL do endpoint como
opc.tcp://localhost:59100
e, em seguida, configure os nós, os usuários e a segurança desejados. Consulte a Central de Ajuda do FTOptix se precisar de ajuda com a configuração.
Método 1: usando um host do Edge Device Connector
- Configure seu Tulip Edge Device e conecte-o à mesma rede que a HMI.
- Navegue até
https://<your-instance>.tulip.co/machine_data_sources
. Essa página também pode ser encontrada navegando até Shop Floor > Machines e selecionando Data Sources no painel do lado esquerdo. - Selecione o botão "Criar fonte de dados da máquina". Preencha o seguinte: Nome:
<nome desejado da fonte de dados>
Executa em:<seu dispositivo de borda>
Tipo: OPC UA Agent URL:<IP Address of the HMI>
- Preencha as opções de segurança para que correspondam àquelas do servidor OPC UA no Optix.
- Selecione "Test" (Teste) para verificar a conexão e, em seguida, "Save" (Salvar).
- Consulte Como adicionar e configurar máquinas para conectar a fonte de dados do Optix a uma máquina no Tulip.
Método 2: usar um host de conector local (OPCH)
- Configure um OPCH na HMI. Consulte Visão geral dos hosts do conector local para obter instruções sobre como configurar um host do conector local (OPCH).
- Navegue até
https://<your-instance>.tulip.co/machine_data_sources
. Essa página também pode ser encontrada navegando até Shop Floor > Machines e, em seguida, selecionando Data Sources no painel do lado esquerdo. - Selecione o botão "Criar fonte de dados da máquina". Preencha o seguinte: Nome:
<nome desejado da fonte de dados>
Executa em:<seu OPCH>
Tipo: URL do agente OPC UA :<endereço IP da HMI>
- Preencha as opções de segurança para que correspondam àquelas do servidor OPC UA no Optix.
- Selecione "Test" (Teste) para verificar a conexão e, em seguida, "Save" (Salvar).
- Consulte Como adicionar e configurar máquinas para conectar a fonte de dados do Optix a uma máquina no Tulip.
Enviar dados do Tulip para o Optix
- Clique com o botão direito do mouse na pasta NetLogic e selecione New > Runtime NetLogic. Use o script abaixo para hospedar o servidor HTTP REST. @(Embed)(https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/RESTServer(1).cs){height="320" width="640"}
- Altere as linhas 869-1000 de acordo com seu caso de uso. Atualmente, ele está configurado para receber chamadas PUT nos caminhos
/targetValues
e/screen
. Os valores recebidos são armazenados emref_<variable-name>,
por exemplo,ref_TargetPressure
.
O código abaixo é usado para receber as chamadas PUT e passá-las para os aliases no Optix.
Linhas 924 - 955:```` case "PUT": switch (e.Path) { case "screen": // http://localhost:8081/screen byte[] payloadraw = (byte[])e.Data; string payload = System.Text.Encoding.UTF8.GetString(payloadraw, 0, payloadraw.Length); string screen = JObject.Parse(payload)["screen"].ToString();
((IUAVariable)LogicObject.GetAlias("refScreenToShow")).Value = screen; res = 1; break; case "targetValues": // http://localhost:8081/targetValues payloadraw = (byte[])e.Data; payload = System.Text.Encoding.UTF8.GetString(payloadraw, 0, payloadraw.Length); Log.Warning(payload); int targetPressure = int.Parse(JObject.Parse(payload)["targetPressure"].ToString()); int targetTemperature = int.Parse(JObject.Parse(payload)["targetTemperature"].ToString()); float targetpH = float.Parse(JObject.Parse(payload)["targetpH"].ToString()); int targetDO = int.Parse(JObject.Parse(payload)["targetDO"].ToString()); ((IUAVariable)LogicObject.GetAlias("ref_TargetPressure")).Value = targetPressure; ((IUAVariable)LogicObject.GetAlias("ref_TargetTemperature")).Value = targetTemperature; ((IUAVariable)LogicObject.GetAlias("ref_TargetpH")).Value = targetpH; ((IUAVariable)LogicObject.GetAlias("ref_TargetDO")).Value = targetDO; res = 1; break; default: break; } break;
1. No Optix, selecione o servidor REST Netlogic e, em seguida, visualize o painel Properties no lado direito. Os aliases atribuídos no código para o servidor REST podem ser atribuídos a variáveis no Optix. Por exemplo, na imagem abaixo, `ref_TargetTemperature` está sendo atribuído à variável `cfg_TargetTemperature` do Optix.![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%28639%29.png){height="" width=""}
2. Em sua instância do Tulip, navegue até Apps > Connectors.
3. Selecione o botão "Create Connector" (Criar conector).
4. Crie um conector personalizado com o tipo HTTP.
5. Os detalhes da conexão devem corresponder ao seguinte: **Executando em:** `<seu dispositivo de borda ou OPCH>` **Host:** `<endereço IP da HMI>` **Porta:** `<porta atribuída ao servidor REST no Optix>` - *Na imagem acima, estamos usando a porta 8081*
6. Selecione "Test" (Teste) para verificar a conexão e, em seguida, "Save" (Salvar).
7. Crie uma Function e defina o seguinte: **Type:** PUT **Path:** Isso deve corresponder ao que você definiu no código como seu caminho. Seguindo o exemplo anterior, ele é definido como `/targetValues` ou `/screen`.
8. Adicione todos os parâmetros relevantes ao corpo da solicitação:![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%28640%29.png){height="" width=""}
Se você precisar de ajuda para criar funções de conector no Tulip, consulte [Como configurar um conector](/r230/docs/how-to-configure-a-connector).
## Resumo
A comunicação bidirecional foi configurada entre o aplicativo Tulip e o Optix HMI, permitindo que você envie dados livremente entre eles. Em nossa demonstração dessa integração, usamos o OPC UA para enviar os dados da máquina em tempo real, quaisquer alarmes abertos e a tela atual do Optix para o Tulip. Usamos o servidor REST para enviar valores-alvo para a máquina junto com a tela para a qual queremos mudar o aplicativo Optix. Isso nos permite monitorar e controlar a máquina, bem como o próprio aplicativo Optix, usando acionadores em nosso aplicativo Tulip.
Se estiver interessado em controlar a tela do Optix a partir do Tulip, consulte o código Runtime NetLogic abaixo. Ele deve ser colocado diretamente na MainWindow (type) e precisará ser alterado para se ajustar aos nomes do seu Panel Loader e das telas. @(Embed)(https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/MainWindowRuntimeLogic.cs){height="320" width="640"}