问题
I would like to create an application for industrial automation to do the following functionalities:
- Read values from PLC, SCADA, and DCA
- Process those values and notify failures to Supervisor and Technician
I am new to the Industrial Automation industry and IoT, and I knew that we have OPC UA in place to rescue.
I came across many websites and youtube videos to understand OPC UA and its predecessors (OPC DA, OPC A&E, OPC HDA). And I have installed matrikon OPC server and explorer (client) to explore more.
Let's say I want to read signals from SIMATIC S7-1200 PLC, from my understanding, the OPC UA server is shipped with PLC to convert OPC UA information to Profinet information.
So, my questions are:
- Where should I need to write logic to read values? OPC Server or Client?
- I am going to use NODE-OPC-UA. Is there any open-source OPC client GUI out there?
- How to write our own OPC Server for PLC which doesn't have OPC UA complaint?
If anyone shares some resources that would be grateful!
回答1:
Where should I need to write logic to read values? OPC Server or Client?
In OPC UA a Server is generally speaking a device or a component which provides data to OPC UA Clients. In your case the OPC UA Server is the SIMATIC S7. An OPC UA Client is then used to read variable values from this server.
For debugging purposes and inspection you can use for example the free (commercial) tool UaExpert. You can only use it to see the current data of the server, you can not use it to program your logic around it.
Finally, to answer your question: You need to use an OPC UA Client SDK to read values from an OPC UA Server and implement your own logic around it. There are commercial OPC UA stacks available, and open source stacks. A list of open source stacks can be found here: Open Source OPC UA Stacks.
I know that the open62541 stack is able to connect to the Simatic S7 and it can read values from variable nodes.
I am going to use NODE-OPC-UA. Is there any open-source OPC client GUI out there?
OPC client GUI is quite a generic term. What exactly is your goal for the GUI? If you just need it for debugging and inspection, use UaExpert. Since OPC UA is just a Framework and Protocol definition, you need to program the logic behind the values yourself. Currently there's not really a generic OPC UA GUI with which you can easily define your own logic as an OPC UA client. Use any OPC UA client SDK to achieve this.
How to write our own OPC Server for PLC which doesn't have OPC UA complaint?
This question can not be answered in a generic way. It strongly depends which PLC hardware you are using. E.g., is it possible to directly put your own program onto the PLC? Is it completely closed and you need to use a fieldbus interface to communicate with the PLC?
A generic solution for this would be that you implement an OPC UA Server on an external device, e.g., a PC. This PC is directly connected with the PLC. Inside your implementation you then need to implement the communication with the PLC and then map the received PLC values to the OPC UA Server variables. So basically your OPC UA Server acts as a gateway.
回答2:
Forget about previous versions of OPC (OPC DA, OPC A&E, OPC HDA) they are outdated versions and replaced by OPC UA.
In addition, the outdated versions are based on Windows DCOM and therefore could only be installed on a Windows computer.
In contrast, OPC UA is platform independent and can even be installed in the PLC itself, like some PLC manufacturers that already offer an integrated OPC UA server.
If you use a PLC with the integrated server, you only need an OPC UA client to read and write PLC data.
If instead the PLC does not have an OPC UA server, then an OPC UA server should be installed on a computer that on one hand reads or writes from the PLC using a protocol that the PLC understands (Profinet, Ethernet/IP, Modbus, Fins, etc. ...) and on the other hand OPC UA clients can read and write
As far I remember, S7-1200 does not have an integrated OPC UA server but S7-1500 does.
How to write our own OPC Server for PLC which doesn't have OPC UA complaint?
Yo can't do that. The PLCs with integrated OPC UA server have it incorporated in their firmware and only the manufacturer can program it.
回答3:
If you are not limited on either side, I would like to suggest you the Siemens S7-300/400/1200/1500 controller series. You can integrate them into the system and monitor their work through the TIA portal. Then there would be no need to create an additional application.
来源:https://stackoverflow.com/questions/58206128/need-clarity-on-opc-ua-server-and-opc-ua-client