OPC-UA Agent for Legacy Programmable Logic Controllers †
Abstract
:1. Introduction
2. Background
2.1. OPC Unified Architecture
2.2. OPC-UA for IEC 61131-3
2.3. Related Works
3. OPC-UA Agent for Legacy Programmable Logic Controllers
3.1. OPC-UA Server
3.2. Legacy Gateway and Shared Memory
3.3. OPC-UA Client and RPC
4. Performance Evaluation
4.1. Experimental Setup
4.2. Read Service of OPC-UA Server
4.3. OPC-UA Client Function Blocks for IEC 61131-3
5. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
References
- Sauter, T.; Lobashov, M. How to Access Factory Floor Information using Internet Technologies and Gateways. IEEE Trans. Ind. Inform. 2011, 7, 699–712. [Google Scholar] [CrossRef]
- International Electrotechnical Commission. OPC Unified Architecture—Part 1: Overview Concepts, Rev. 2.0; International Electrotechnical Commission: Geneva, Switzerland, 2016. [Google Scholar]
- Mahnke, W.; Leitner, S.-H.; Damm, M. OPC Unified Architecture; Springer: Berlin, Germany, 2009. [Google Scholar]
- Hastbacka, D.; Barna, L.; Karaila, M.; Liang, Y.; Tuominen, P.; Kuikka, S. Device Status Information Service Architecture for Condition Monitoring Using OPC UA. In Proceedings of the IEEE Conference on Emerging Technology and Factory Automation, Barcelona, Spain, 16–19 September 2014; pp. 1–7. [Google Scholar]
- Kim, W.; Sung, M. Standalone OPC UA Wrapper for Industrial Monitoring and Control Systems. IEEE Access 2018, 6, 36557–36570. [Google Scholar] [CrossRef]
- Shin, S.-J. An OPC UA-Compliant Interface of Data Analytics Models for Interoperable Manufacturing Intelligence. IEEE Trans. Ind. Inform. 2021, 17, 3588–3598. [Google Scholar] [CrossRef]
- PLCopen and OPC Foundation. OPC UA Information Model for IEC 61131-3, Rev. 1.02; International Electrotechnical Commission: Geneva, Switzerland, 2020. [Google Scholar]
- PLCopen and OPC Foundation. PLCopen OPC-UA client for IEC 61131-3, Ver. 1.1; PLCopen: Gorinchem, The Netherlands, 2016. [Google Scholar]
- Givehchi, O.; Landsdorf, K.; Simoens, P.; Colombo, A.W. Interoperability for Industrial Cyber-Physical Systems: An Approach for Legacy Systems. IEEE Trans. Ind. Inform. 2017, 13, 3370–3378. [Google Scholar] [CrossRef]
- Hannelius, T.; Salmenpera, M.; Kuikka, S. Roadmap to adopting OPC UA. In Proceedings of the IEEE Conference on Industrial Informatics, Daejon, Korea, 13–16 July 2008; pp. 756–761. [Google Scholar]
- Hascamp, H.; Orth, F.; Wermann, J.; Colombo, A.W. Implementing an OPC UA interface for legacy PLC-based automation systems using the Azure cloud: An ICPS-architecture with a retrofitted RFID system. In Proceedings of the IEEE Industrial Cyber-Physical Systems Conference, St. Petersburg, Russia, 15–18 May 2018; pp. 115–121. [Google Scholar]
- Chivilikhin, D.; Patil, S.; Chukharev, K.; Cordonnier, A.; Vyatkin, V. Automatic State Machine Reconstruction From Legacy Programmable Logic Controller Using Data Collection and SAT Solver. IEEE Trans. Ind. Inform. 2020, 16, 7821–7831. [Google Scholar] [CrossRef]
- Cereia, M.; Bertolotti, I.C.; Scanzio, S. Performance of a Real-Time EtherCAT Master under Linux. IEEE Trans. Ind. Inform. 2011, 7, 678–687. [Google Scholar] [CrossRef]
- Denzler, P.; Fruhwirth, T.; Kirchberger, A.; Schoeberl, M.; Kastner, W. Static timing analysis of OPC UA PubSub. In Proceedings of the IEEE Conference on Factory Communication Systems, Linz, Austria, 9–11 June 2021; pp. 167–174. [Google Scholar]
- Cavalieri, S.; Chiacchio, F. Analysis of OPC UA Performances. Comput. Stand. Interfaces 2013, 36, 165–177. [Google Scholar] [CrossRef]
- Birrell, A.D.; Nelson, B.J. Implementing Remote Procedure Calls. ACM Trans. Comput. Syst. 1984, 2, 39–59. [Google Scholar] [CrossRef]
- Palm, F.; Gruner, S.; Pfrommer, J.; Graube, M.; Urbas, L. Open Source as Enabler for OPC UA in Industrial Automation. In Proceedings of the IEEE Conference on Emerging Technology and Factory Automation, Luxembourg, 8–11 September 2015; pp. 1–6. [Google Scholar]
- Lee, B.; Kim, D.-K.; Yang, H.; Oh, S. Model Transformation between OPC UA and UML. Comput. Stand. Interfaces 2017, 50, 236–250. [Google Scholar] [CrossRef]
- Canedo, A.; Ludwig, H.; Faruque, M. High Communication Throughput and Low Scan Cycle Time with Multi/Many-Core Programmable Logic Controllers. IEEE Embed. Syst. Lett. 2014, 6, 21–24. [Google Scholar] [CrossRef]
- Canedo, A.; Al-Faruque, M. Towards Parallel Execution of IEC 61131 Industrial Cyber-Physical Systems Applications. In Proceedings of the Design, Automation & Test in Europe Conference, Dresden, Germany, 12–16 March 2012; pp. 554–557. [Google Scholar]
- International Electrotechnical Commission. IEC 61131-3—Part 3: Programing Languages, Ed. 3.0; International Electrotechnical Commission: Geneva, Switzerland, 2013. [Google Scholar]
- Durkop, L.; Imtiaz, J.; Trsek, H.; Wisniewski, L.; Jasperneite, J. Using OPC-UA for the Autoconfiguration of Real-Time Ethernet Systems. In Proceedings of the IEEE Conference on Industrial Informatics, Bochum, Germany, 29–31 July 2013; pp. 248–253. [Google Scholar]
- Girbea, A.; Suciu, C.; Nechifor, S.; Sisak, F. Design and Implementation of a Service-Oriented Architecture for the Optimization of Industrial Applications. IEEE Trans. Ind. Inform. 2014, 10, 185–196. [Google Scholar] [CrossRef]
- Jirkovsky, V.; Obitko, M.; Kadera, P.; Marik, V. Toward plug&play cyber-physical system components. IEEE Trans. Ind. Inform. 2018, 14, 2803–2811. [Google Scholar]
- Bauer, H.; Hoppner, S.; Iatrou, C.; Charania, Z.; Hartmann, S.; Rehman, S.U.; Dixius, A.; Ellguth, G.; Walter, D.; Uhlig, J.; et al. Hardware Implementation of an OPC UA Server for Industrial Field Devices. IEEE Trans. Very Large Scale Integr. VLSI Syst. 2021, 29, 1998–2002. [Google Scholar] [CrossRef]
- Imtiaz, J.; Jasperneite, J. Scalability of OPC-UA Down to the Chip Level Enables Internet of Things. In Proceedings of the IEEE Conference on Industrial Informatics, Bochum, Germany, 29–31 July 2013; pp. 500–505. [Google Scholar]
- Gruner, S.; Pfrommer, J.; Palm, F. RESTful Industrial Communication with OPC UA. IEEE Trans. Ind. Inform. 2016, 12, 1832–1841. [Google Scholar] [CrossRef]
- Bruckner, D.; Stanica, M.-P.; Blair, R.; Schriegel, S.; Kehrer, S.; Seewald, M.; Sauter, T. An Introduction to OPC UA TSN for Industrial Communication Systems. Proc. IEEE 2019, 107, 1121–1131. [Google Scholar] [CrossRef]
- Li, Y.; Jiang, J.; Lee, C.; Hong, S.H. Practical Implementation of an OPC UA TSN Communication Architecture for a Manufacturing System. IEEE Access 2020, 8, 200100–200111. [Google Scholar] [CrossRef]
- Panda, S.K.; Majumder, M.; Wisniewski, L.; Jasperneit, J. Real-time industrial communication by using OPC UA field level communication. In Proceedings of the IEEE Conference on Emerging Technology and Factory Automation, Wien, Austria, 8–11 September 2020; pp. 1143–1146. [Google Scholar]
- Gogolev, A.; Braun, R.; Bauer, P. TSN traffic shaping for OPC UA filed devices. In Proceedings of the IEEE Conference on Industrial Informatics, Helsinki, Finland, 22–25 July 2019; pp. 951–956. [Google Scholar]
- Morato, A.; Vitturi, S.; Tramarin, F.; Cenedese, A. Assessment of Different OPC UA Implementations for Industrial IoT-Based Measurement Applications. IEEE Trans. Instrum. Meas. 2020, 70, 1–11. [Google Scholar] [CrossRef]
- Friedl, S.; Arnim, C.; Lechler, A.; Verl, A. Generation of OPC UA companion specification with Eclipse modeling framework. In Proceedings of the IEEE Conference on Factory Communication Systems, Porto, Portugal, 27–29 April 2020; pp. 1–7. [Google Scholar]
- Silva, D.; Carvalho, L.I.; Soares, J.; Sofia, R.C. A Performance Analysis of Internet of Things Networking Protocols: Evaluating MQTT, CoAP, OPC UA. Appl. Sci. 2021, 11, 4879. [Google Scholar] [CrossRef]
- Kim, W.; Sung, M. Poster Abstract: OPC-UA Communication Framework for PLC-Based Industrial IoT Applications. In Proceedings of the IEEE/ACM Conference on Internet of Things Design and Implementation, Pittsburgh, PA, USA, 18–21 April 2017; pp. 327–328. [Google Scholar]
- Lee, S.-Y.; Sung, M. RPC-Based OPC-UA Agent for Legacy PLCs. In Proceedings of the IEEE Conference on Emerging Technology and Factory Automation, Stuttgart, Germany, 6–9 September 2022. [Google Scholar]
- Wilamowski, B.M.; Irwin, J.D. Industrial Communication Systems; CRC Press: Boca Raton, FL, USA, 2017. [Google Scholar]
- Open62541. Available online: http://www.open62541.org (accessed on 2 July 2022).
- Müller, M.; Wings, E.; Bergmann, L. Developing open source cyber-physical systems for service-oriented architectures using OPC UA. In Proceedings of the International conference on Industrial Informatics (INDIN), Emden, Germany, 24–26 July 2017; pp. 83–88. [Google Scholar]
- Pribiš, R.; Beňo, L.; Drahoš, P. Implementation of Micro embedded OPC Unified Architecture server-client. IFAC-PapersOnLine 2019, 52, 114–120. [Google Scholar] [CrossRef]
- Unified Automation GmbH. UaExpert. Available online: https://www.unified-automation.com/products/developmenttools/uaexpert.html (accessed on 2 July 2022).
Function Block Name | Description |
---|---|
UA_Connect | Create a connection of OPC-UA session. |
UA_Disconnect | Close a connection of OPC-UA session. |
UA_NamespaceGetIndexList | Acquire a list of indexes for the given namespaces. |
UA_ServerGetUriByIndex | Acquire the server-URI with a given index. |
UA_ServerGetIndexByUriList | Acquire a list of indexes for the server-URIs. |
UA_TranslatePathList | Acquire a list of node IDs for the node paths. |
UA_NodeGetHandleList | Acquire node handles for the given node IDs. |
UA_NodeReleaseHandleList | Release a set of node handles. |
UA_NodeGetInformation | Acquire the node information. |
UA_SubscriptionCreate | Create a subscription. |
UA_SubscriptionDelete | Delete a subscription. |
UA_SubscriptionModify | Modify publish parameters of a subscription. |
UA_SubscriptionProcessed | Check if monitored items have been published. |
UA_MonitoredItemAddList | Add nodes for monitored items. |
UA_MonitoredItemRemoveList | Remove monitored items from a subscription. |
UA_MonitoredItemModifyList | Modify monitored items. |
UA_MonitoredItemOperateList | Update the values of monitored items. |
UA_ReadList | Read values of a list of nodes. |
UA_WriteList | Write values of a list of nodes. |
UA_MethodGetHandleList | Acquire handles for method calls. |
UA_MethodReleaseHandleList | Release method handles. |
UA_MethodCall | Call a method routine. |
UA_Browse | Navigate through OPC-UA address space. |
UA_EventItemAdd | Create events in a subscription. |
UA_EventItemOperateList | Acquire a list of event information. |
UA_EventItemRemoveList | Remove events from a subscription. |
UA_HistoryUpdate | Insert or update data in the historical database. |
UA_ConnectGetStatus | Acquire the connection status. |
System | Item | Description |
---|---|---|
External OPC-UA system | CPU | Intel(R) Core(TM) i5-9300H CPU @2.40 GHz |
Main memory | 8.00 GB DDR4 DRAM | |
Operating system | Windows 11 Pro | |
OPC-UA software | open62541 v1.1 by open62541 community project | |
Network | Realtek Gaming GbE Family Controller | |
OPC-UA agent | CPU | Intel(R) Core(TM) i5-8500 CPU @3.00 GHz |
Main memory | 8.00 GB DDR4 DRAM | |
Operating system | Windows 10 Home | |
OPC-UA software Network | open62541 v1.1 by open62541 community project | |
Intel(R) Ethernet Connection(7) I219-V | ||
Legacy controller | CPU | Arm Cortex-R4F-based TI RM46L852 MCU |
Main memory | 16 MB flash memory and 32 KB NVRAM | |
Network | WIZnet W5300 Ethernet controller |
Function Block | Function Response Time (ms) (Average, Std. Dev.) | ||
---|---|---|---|
Function block without the number of nodes argument | UA_Connect | 79.09, 1.23 | 26.93, 8.09 |
UA_Disconnect | 79.30, 0.47 | 3.90, 0.63 | |
UA_TranslatePathList | 78.25, 2.72 | 8.10, 1.75 | |
UA_NodeGetInformation | 77.13, 5.44 | 14.57, 5.94 | |
UA_SubscriptionCreate | 75.50, 7.97 | 1.70, 0.56 | |
UA_SubscriptionDelete | 75.05, 8.74 | 14.15, 1.08 | |
UA_SubscriptionModify | 77.28, 6.49 | 2.57, 0.46 | |
UA_SubscriptionProcessed | 74.68, 9.14 | 8.69, 3.59 | |
UA_Browse | 77.82, 6.69 | 5.85, 0.47 | |
UA_ConnectGetStatus | 77.41, 6.76 | 3.67, 1.77 | |
UA_NamespaceGetIndexList | 77.06, 6.41 | 4.20, 2.06 | |
UA_ServerGetUriByIndex | 77.00, 6.16 | 2.65, 0.09 | |
UA_ServerGetIndexByUriList | 75.70, 6.02 | 4.54, 0.40 | |
Function block having the number of nodes argument | UA_NodeGetHandleList | 77.05, 6.19 | 3.76, 0.28 |
UA_NodeReleaseHandleList | 76.20, 7.15 | 2.59, 0.26 | |
UA_MonitoredItemAddList | 77.29, 6.09 | 19.95, 0.89 | |
UA_MonitoredItemRemoveList | 77.47, 6.35 | 17.26, 6.35 | |
UA_MonitoredItemModifyList | 77.50, 6.56 | 27.00, 2.31 | |
UA_MonitoredItemOperateList | 76.80, 6.10 | 7.35, 0.33 | |
UA_ReadList | 76.00, 7.33 | 10.51, 1.87 | |
UA_WriteList | 78.05, 4.70 | 12.31, 0.48 | |
UA_MethodGetHandleList | 77.95, 4.53 | 0.97, 0.26 | |
UA_MethodReleaseHandleList | 78.61, 4.67 | 0.05, 0.02 | |
UA_MethodCall | 77.31, 5.52 | 8.08, 2.25 | |
UA_EventItemAdd | 77.67, 5.89 | 1.59. 0.35 | |
UA_EventItemOperateList | 76.24, 7.92 | 0.06, 0.01 | |
UA_EventItemRemoveList | 76.00, 7.14 | 1.81, 0.16 | |
UA_HistoryUpdate | 76.00, 7.33 | 11.38, 2.58 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Lee, S.-Y.; Sung, M. OPC-UA Agent for Legacy Programmable Logic Controllers. Appl. Sci. 2022, 12, 8859. https://doi.org/10.3390/app12178859
Lee S-Y, Sung M. OPC-UA Agent for Legacy Programmable Logic Controllers. Applied Sciences. 2022; 12(17):8859. https://doi.org/10.3390/app12178859
Chicago/Turabian StyleLee, Seung-Yong, and Minyoung Sung. 2022. "OPC-UA Agent for Legacy Programmable Logic Controllers" Applied Sciences 12, no. 17: 8859. https://doi.org/10.3390/app12178859
APA StyleLee, S. -Y., & Sung, M. (2022). OPC-UA Agent for Legacy Programmable Logic Controllers. Applied Sciences, 12(17), 8859. https://doi.org/10.3390/app12178859