Questo sito utilizza i cookie. Utilizzando il sito web si accetta l´uso dei cookie. escludere Ulteriori informazioni

Supporto OPC Server

Supporto OPC Server

Supporto OPC Server

Tani OPC Server

Panoramica: Optimize OPC, OPC Wonderware, Modifiche al contenuto del programma PLC, Da OPC Classic a OPC UA, Componenti principali OPC DA, Tunnel OPC, OPC and Excel, OPC UA station search, OPC UA many server conections, OPC UA alarm, OPC to Siemens S7 200, OPC to Siemens Logo, Handle PLC variables over MQTT, MQTT 5 and variable types, OPC to Mitsubishi Melsec Q, OPC to Mitsubishi FX5, BACnet alarm requirements.

Rispondere:

Often the reason are a lot of long fields or error texts or recepture fields. This things are needed in the SCADA software only if the error or field condition changes. Normally this is true if the error index is changing. The SCADA software is registering the ling text for changing, a standard OPC server polls the long data for changes. Registering the data after the condition is changing will be too slowly also. This results in a heavily network load.
The solution for this: Define under "tables" "Wizard long data" a new optimizing. Call it "Error texts". Select the error index in group 1. In group 2 choose the long error text. The alias name which redirects the existing OPC item to the optimized element is created automatically.

Rispondere:

Utilizzare questa documentazione. Si trova anche nell' area download e nei manuali.

Rispondere:

Il server OPC controlla ogni dieci secondi per verificare che cambiamenti nel controllore. Se viene rilevata una modifica, essa riorganizza internamente tutte le cose necessarie. Ma si preferisce non scrivere nella cartella controllore se i dati del controllore vengono cambiati frequentemente. La lettura dei dati è sempre sicura

Rispondere:

Si'. Si prega di creare nel server Tani OPC un'opzione al dispositivo OPC UA. Nel vostro client OPC DA raggiungerete Il dispositivo è normale durante la navigazione: Tani OPC server, la prossima è la connessione al tuo dispositivo. Il resto funziona normalmente come negli altri tipi di navigazione.

Rispondere:

Per reinizializzare o rimuovere i componenti di base OPC è importante che nessun software li stia utilizzando. Questo è gestito dal file batch "OpcUr.cmd".
Il file deve essere copiato in c:\Windows\SysWOWOW64. Si prega di aprire un prompt dei comandi come amministratore. Entrare nella directory con il cd c:\Windows\SysWOWOW64.
Il file conosce un parametro a riga di comando -r che cancella i componenti e li registra di nuovo, nessun file viene rimosso con questo set di parametri. Alcune finestre di dialogo sono mostrate, confermatele per favore. Possono verificarsi errori se i file sono in uso. Un riavvio del computer può risolvere questo problema. In caso contrario, arrestare il programma che utilizza i componenti e rimuovere manualmente i file interessati. Dopo di che, per problemi di sicurezza, si consiglia di riavviare nuovamente il computer. Una nuova installazione di Tani OPC Server o PLC Engine Collect reinstalla e reinizializza correttamente i componenti principali di OPC. Tutti i software OPC DA di altri produttori funzioneranno nuovamente. Tutti gli effetti con i componenti OPC DA con privilegi di accesso sono ora fissi.

Rispondere:

Con il tunnel OPC che è una funzionalità integrata in tutti i server OPC di Tani. Il protocollo OPC più veloce per questo è OpcPipe, è possibile utilizzare anche OPC-UA.

Rispondere:

Please use this example.

Rispondere:

Under Windows the Bonjour service version 2.0 need to be installed, additionally the UDP port 5353 need to be opened in the firewall.
Under Linux the avahi daemon need to be present. You will find it in the packet manager of your distribution. The UDP port 5353 need to be opened in the firewall.
Please do not install multiple OPC UA discovery servers on the same machine.
If you try using an external discovery server mostly the certificates need to be proved. Ask the discovery servers manufacturer for details.

Rispondere:

Most OPC UA clinets are using this sheme for the connection establishing:

  • Establish an IP connection, establish the secure channel (always this is unencrypted)
  • Browse the UA endpoints
  • Close the secure channel and the IP connection
  • Reestablish the IP connection and the secure channel (possibly encryped now)
  • Create the session, login, ..
  • Browse, register items and use all possibilities of OPC UA

This is neccessary because needed connection details are available after the first short connection only. This is a design flaw in OPC UA, this can be fixed with an new OPC UA protocol only.

The Tani OPC server needs some millisecond for the "first" connection shutting down. So depending on the system behaviour more than the So more than the real OPC UA connections will run at a short time. If the limit configured in the OPC UA server connection is reached the station denies the IP connection request. The client then breaks up any further connection request for a long time.
Best is configuring some more OPC UA server connections as needed for the number of partners. Good is 10% more connections.

Rispondere:

The Tani OPC UA alarm and conditions are working as in the OPC UA specification talks about. Additionally all variables reflecting the alarms and conditions are offered in the variables tree all OPC programs can browse.

Create the alarm with XML file

The example XML file contains a "Test-Alarm" of type ExclusiveLevelAlarmType (in folder Objects/Tani-Example). To configure it, the following properties must be written:

  • InputNode: - write to the NodeId of the variable that should be monitored (for example the default test variable: ns=1;s=Memory.TestInteger).
  • HighHighLimit, HighLimit, LowLimit, LowLowLimit: - write to the alarm limits; any value outside of these defined limits triggers the alarm.

Finally enable the alarm:

  • by calling the "Enable" method (over OPC UA)
  • or by writing EnabledState/Id to true (locally in logic tables or with status variables, or over OPC UA)

To monitor the alarm:

  • either listen to events on the "Server" object,
  • or monitor the state variables of the alarm object (ActiveState, ...)
  • or (for debugging purposes) monitor EnabledState/EffectiveDisplayName

To create more alarms, use one of these methods:

  • create a XML file, instantiate an alarm object and configure all needed properties via XML
  • create a XML file, instantiate an alarm object and configure all needed properties via logic tables
  • create the object with the Tani Configuration and configure all needed properties via logic tables

Rispondere:

Please use this example. One data block only exists, it has the number 1.

Rispondere:

The Siemens Logo works as a Siemens S7 300 compatible. Mostly the automatically TSAP search will find this PLC, but if the TSAP is edited in the PLC it need to be entered manually.

Rispondere:

Two ways are existing:
  • Configure a MQTT broker with the "Enable the $topics/" functionality.
    In your MQTT client for accessing the variable Memory.TestInteger register "$topics/Memory/TestIngeger". Using the status variable functionality in the graphical OPC Server configuration needs "MyMQTTclientConectiionName.$topics/Memory/TestIngeger" as item name
    Ideally the requests are using JSON. So set the "JSON data format" setting in the configured broker. Then the data will received in your client including the variable, the data value and the data type. This also can be used for structured variables.
    The variable comes on data changes.
    Variables can be written also.

    Limit the access using the access levels.

  • Offer the variables assigning symbols to the MQTT connection using a specific item syntax. An example is
    MyVariable{{Int 32}}
    for a reading 32 bit signed variable. Reading structured data follow this example:
    MyStructuredVariable{{Structure:MyStructure}}
    Using structure mostly needs JSON or XML choosen ion the data format of the MQTT connection.

    Create a MQTT client or server (broker) connection
    Assign PLC variables to this connection.
    Now the defined variables can be read over MQTT.
    If MQTT needs sending variables on a trigger condition as a value change a logic table is required. Logic tables are included in the PLC Engine and OpcEngine products.

Rispondere:

Offer the variables using the datatype names as Boolean, SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, String, Float, Double, DateTime.
Optional modifiers are BigEndian, LittleEndian, Array, BitArrayLength1, BitArrayLength2, BitArrayLengt31 ,BitArrayLength4, BitArrayLength5, BitArrayLength6, BitArrayLength7.
The defines item syntax used in symbolic variables - example is MyVariable{{Int 32}} - will be converted to the datatype names above.
Create a MQTT client or server (broker) connection, choose MQTT 5.
Assign PLC variables to this connection.

Rispondere:

This images are showing the settings for the OPC server and the PLC (the IP address need to be used from your real plant network)


Rispondere:

This images are showing the settings for the OPC server and the PLC (the IP address need to be used from your real plant network)





Doubleclick on the PLC Module icon.



Rispondere:

  1. Configure the global settings: Menu Station → BACnet System Settings
    • Enter the "Own Device ID", make sure that no other BACnet device in your network uses the same ID
  2. Create a new connection to the BACnet device
    • Enter correct IP, Device ID and/or BBMD address
    • Check "Automatic Event Forwarding"

In the BACnet device

  1. Configure the initiating object. This example is for an Analog Value object. Other objects have a different set of properties to configure. Not all propertiess exist in all devices.
    • event-enable: [true, true, true]
    • event-detection-enable: true
    • high-limit, low-limit, deadband: as appropriate for the value
    • limit-enable: [true, true] or as appropriate
    • notification-class: choose a notification class that is present in the device
  2. Configure the Notification Class
    • recipient-list: add the the PLC Engine:
      • ValidDays: [true, true, true, true, true, true, true]
      • FromTime, ToTime: 00:00:00.00 to 23:59:59.99
      • Recipient: device = Device ID of PLC Engine
      • ProcessIdentifier: 0
      • IssueConfirmedNotifications: true
      • Transitions: [true, true, true]