Open Platform Communications: Difference between revisions
→Design: some cleanup for readability |
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5) (Whoop whoop pull up - 21816 |
||
(34 intermediate revisions by 21 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Industrial communication standards}} |
|||
⚫ | |||
'''Open Platform Communications''' ('''OPC''') is a series of [[standardization|standards]] and specifications for industrial [[telecommunication]]. They are based on [[Object Linking and Embedding]] (OLE) for [[process control]]. |
|||
⚫ | |||
After the initial release in 1996, the [[OPC Foundation]] was created to maintain the |
After the initial release in 1996, the [[OPC Foundation]] was created to maintain the standards.<ref name="what">{{Cite web |title= What is OPC? |work= OPC Foundation web site |url= https://opcfoundation.org/about/what-is-opc/ |access-date= October 7, 2021 }}</ref> Since OPC has been adopted beyond the field of process control, the OPC Foundation changed its name to Open Platform Communications in 2011.<ref name="what" /> The name change reflects the applications of OPC technology for applications in [[building automation]], [[discrete manufacturing]], process control and others. OPC has also grown beyond its original OLE implementation to include other data transportation technologies including [[Microsoft Corporation]]'s [[.NET Framework]], [[XML]], and even the OPC Foundation's binary-encoded TCP format. |
||
== |
==History== <!-- or something to say we are not in the Introduction any more --> |
||
The |
The OPC specification was based on the [[Object Linking and Embedding|OLE]], [[Component object model|COM]], and [[Distributed Component Object Model|DCOM]] technologies developed by [[Microsoft Corporation]] for the [[Microsoft Windows]] operating system family. The specification defined a standard set of [[Object (computer science)|object]]s, [[Interface (computer science)|interfaces]] e.g. [[Interface description language|IDL]] and [[Method (computer science)|methods]] for use in process control and manufacturing automation applications to facilitate [[interoperability]]. The most common OPC specification is [[OPC Data Access]], which is used for reading and writing real-time data. When vendors refer to "OPC" generically, they typically mean [[OPC Data Access]] (OPC DA). OPC DA itself has gone through three major revisions since its inception. Versions are backwards compatible, in that a version 3 OPC Server can still be accessed by a version 1 OPC Client, since the specifications add functionality, but still require the older version to be implemented as well. However, a client could be written that does not support the older functions since everything can be done using the newer ones, thus a DA-3-compatible client will not necessarily work with a DA 1.0 Server. |
||
In addition OPC DA specification, the OPC Foundation |
In addition OPC DA specification, the OPC Foundation maintains the [[OPC Historical Data Access]] (HDA) specification. In contrast to the real time data that is accessible with OPC DA, OPC HDA allows access and retrieval of archived data. |
||
The OPC Alarms and Events specification is |
The OPC Alarms and Events specification is maintained by the OPC Foundation, and defines the exchange of alarm and event type message information, as well as variable states and state management.<ref>[https://opcfoundation.org/developer-tools/specifications-classic/alarms-and-events/ OPC A&E specification]</ref> |
||
By 2002, the specification was compared to [[Fieldbus]] and other previous standards.<ref>{{Cite book |title= OPC (OLE for process control) specification and its developments August 5, 2002 |work= Proceedings of the 41st SICE Annual Conference |author= Li Zheng and H. Nakagawa |date= 2002 |volume= 2 |pages= 917–920 |doi= 10.1109/SICE.2002.1195286 |publisher= IEEE |isbn= 0-7803-7631-5 |s2cid= 114855720 }}</ref> |
|||
An OPC Express Interface, known as OPC Xi, was approved in November, 2009, for the [[.NET Framework]].<ref>{{Cite news |work= Automation World |date= December 1, 2009 |title= OPC Xi Interface Approved |url= https://www.automationworld.com/products/control/news/13299096/opc-xi-interface-approved |access-date= October 7, 2021 }}</ref> OPC Xi used [[Windows Communication Foundation]] instead of DCOM, so it can be configured for communication across the enhanced security of [[network address translation]] (NAT).<ref name="gm2009">{{Cite web|title= OPC Xi Updated |author= Gary Mintchell |work= Feed Forward blog |url= http://www.garymintchellsfeedforward.com/feed-forward/2009/11/20/opc-xi-updated.html |date= November 20, 2009 |url-status= dead |archive-date= May 16, 2010 |archive-url= https://web.archive.org/web/20100516163125/http://www.garymintchellsfeedforward.com/feed-forward/2009/11/20/opc-xi-updated.html |access-date= October 7, 2021 }}</ref> |
|||
⚫ | |||
⚫ | OPC was designed to provide a common bridge for Windows-based software applications and process control hardware. Standards define consistent methods of accessing field data from plant floor devices. This method remains the same regardless of the type and source of data. An OPC Server for one hardware device provides the same methods for an OPC |
||
⚫ | About the same time, the [[OPC Unified Architecture]] (UA) was developed for platform independence.<ref name="gm2009" /> UA can be implemented with [[Java (programming language)|Java]], [[Microsoft .NET]], or [[C (programming language)|C]], eliminating the need to use a [[Microsoft Windows]] platform of earlier OPC versions. UA combined the functionality of the existing OPC interfaces with new technologies such as [[XML]] and [[Web services]] to deliver higher level [[manufacturing execution system]] (MES) and [[enterprise resource planning]] (ERP) support. The first working group for UA met in 2003, version 1.0 was published in 2006.<ref>{{Cite web |title= History |work= OPC Foundation web site |url= https://opcfoundation.org/about/opc-foundation/history/ |access-date= October 7, 2021 }}</ref> |
||
⚫ | OPC servers provide a method for |
||
⚫ | On September 16, 2010, The OPC Foundation and the [[MTConnect]] Institute announced cooperation to ensure interoperability and consistency between the two standards.<ref>{{cite web|url=http://www.opcfoundation.org/Default.aspx/02_news/02_news_display.asp?id=845&MID=News|title=OPC Foundation and MTConnect Institute Announce a Memorandum of Understanding |date= October 21, 2010 |publisher=OPC Foundation |work= Press release |access-date= October 7, 2021 |url-status=dead|archive-url=https://web.archive.org/web/20110616214614/http://www.opcfoundation.org/Default.aspx/02_news/02_news_display.asp?id=845&MID=News|archive-date= June 16, 2011 }}</ref> |
||
⚫ | |||
⚫ | |||
⚫ | Once an OPC Server is written for a particular device, it can be reused by any application that is able to act as an OPC client. OPC servers use |
||
⚫ | OPC was designed to provide a common bridge for Windows-based software applications and process control hardware. Standards define consistent methods of accessing field data from plant floor devices. This method remains the same regardless of the type and source of data. An OPC Server for one hardware device provides the same methods for an OPC client to access its data as any other OPC Server for any hardware device. The aim was to reduce the amount of duplicated effort required from hardware manufacturers and their software partners, and from the [[supervisory control and data acquisition]] (SCADA) and other [[human-machine interface]] (HMI) producers in order to interface the two. Once a hardware manufacturer had developed their OPC Server for the new hardware device, their work was done with regards to allowing any 'top end' to access their device, and once the SCADA producer had developed their OPC client, it allowed access to any hardware with an OPC compliant server. |
||
⚫ | OPC servers provide a method for different software packages (as long as it is an OPC client) to access data from a process control device, such as a [[programmable logic controller]] (PLC) or [[distributed control system]] (DCS). Traditionally, any time a package needed access to data from a device, a custom interface or driver had to be written. |
||
⚫ | |||
⚫ | |||
⚫ | Once an OPC Server is written for a particular device, it can be reused by any application that is able to act as an OPC client. OPC servers can be linked and communicate to other servers. OPC servers use Microsoft's OLE technology (also known as the Component Object Model, or COM) to communicate with clients. COM technology permits a standard for real-time information exchange between software applications and process hardware to be defined. |
||
==Future== |
|||
{{Main|OPC Unified Architecture}} |
|||
⚫ | |||
⚫ | Some OPC specifications are published, but others are available only to members of the OPC Foundation. So while no company "owns" OPC and anyone can develop an OPC server whether or not they are a member of the [[OPC Foundation]], non-members will not necessarily be using the latest specifications. It is up to each company that requires OPC products to ensure that their products are certified and that their system integrators have the necessary training.{{citation needed|date=September 2019}} |
||
⚫ | On September 16, 2010, The OPC Foundation and the [[MTConnect]] Institute announced |
||
==See also== |
==See also== |
||
Line 42: | Line 44: | ||
* [http://www.opcfoundation.org/ OPC Foundation] |
* [http://www.opcfoundation.org/ OPC Foundation] |
||
* [http://www.opcconnect.com OPC Programmers' Connection] |
* [http://www.opcconnect.com OPC Programmers' Connection] |
||
* [http://www.commsvr.com/UAModelDesigner/Index.aspx OPC Unified Architecture Address Space e-book] |
* [http://www.commsvr.com/UAModelDesigner/Index.aspx OPC Unified Architecture Address Space e-book] {{Webarchive|url=https://web.archive.org/web/20090130113138/http://www.commsvr.com/UAModelDesigner/Index.aspx |date=2009-01-30 }} |
||
* [https://github.com/engycz/propc prOpc Library - Open Source OPC server/client toolkit in Delphi] |
* [https://github.com/engycz/propc prOpc Library - Open Source OPC server/client toolkit in Delphi] |
||
{{Automation protocols}} |
|||
[[Category:Application programming interfaces]] |
[[Category:Application programming interfaces]] |
||
[[Category: |
[[Category:Industrial automation]] |
||
[[Category:Computer standards]] |
[[Category:Computer standards]] |
Latest revision as of 22:05, 18 November 2024
Open Platform Communications (OPC) is a series of standards and specifications for industrial telecommunication. They are based on Object Linking and Embedding (OLE) for process control. An industrial automation task force developed the original standard in 1996 under the name OLE for Process Control. OPC specifies the communication of real-time plant data between control devices from different manufacturers.
After the initial release in 1996, the OPC Foundation was created to maintain the standards.[1] Since OPC has been adopted beyond the field of process control, the OPC Foundation changed its name to Open Platform Communications in 2011.[1] The name change reflects the applications of OPC technology for applications in building automation, discrete manufacturing, process control and others. OPC has also grown beyond its original OLE implementation to include other data transportation technologies including Microsoft Corporation's .NET Framework, XML, and even the OPC Foundation's binary-encoded TCP format.
History
[edit]The OPC specification was based on the OLE, COM, and DCOM technologies developed by Microsoft Corporation for the Microsoft Windows operating system family. The specification defined a standard set of objects, interfaces e.g. IDL and methods for use in process control and manufacturing automation applications to facilitate interoperability. The most common OPC specification is OPC Data Access, which is used for reading and writing real-time data. When vendors refer to "OPC" generically, they typically mean OPC Data Access (OPC DA). OPC DA itself has gone through three major revisions since its inception. Versions are backwards compatible, in that a version 3 OPC Server can still be accessed by a version 1 OPC Client, since the specifications add functionality, but still require the older version to be implemented as well. However, a client could be written that does not support the older functions since everything can be done using the newer ones, thus a DA-3-compatible client will not necessarily work with a DA 1.0 Server.
In addition OPC DA specification, the OPC Foundation maintains the OPC Historical Data Access (HDA) specification. In contrast to the real time data that is accessible with OPC DA, OPC HDA allows access and retrieval of archived data.
The OPC Alarms and Events specification is maintained by the OPC Foundation, and defines the exchange of alarm and event type message information, as well as variable states and state management.[2] By 2002, the specification was compared to Fieldbus and other previous standards.[3]
An OPC Express Interface, known as OPC Xi, was approved in November, 2009, for the .NET Framework.[4] OPC Xi used Windows Communication Foundation instead of DCOM, so it can be configured for communication across the enhanced security of network address translation (NAT).[5]
About the same time, the OPC Unified Architecture (UA) was developed for platform independence.[5] UA can be implemented with Java, Microsoft .NET, or C, eliminating the need to use a Microsoft Windows platform of earlier OPC versions. UA combined the functionality of the existing OPC interfaces with new technologies such as XML and Web services to deliver higher level manufacturing execution system (MES) and enterprise resource planning (ERP) support. The first working group for UA met in 2003, version 1.0 was published in 2006.[6]
On September 16, 2010, The OPC Foundation and the MTConnect Institute announced cooperation to ensure interoperability and consistency between the two standards.[7]
Design
[edit]OPC was designed to provide a common bridge for Windows-based software applications and process control hardware. Standards define consistent methods of accessing field data from plant floor devices. This method remains the same regardless of the type and source of data. An OPC Server for one hardware device provides the same methods for an OPC client to access its data as any other OPC Server for any hardware device. The aim was to reduce the amount of duplicated effort required from hardware manufacturers and their software partners, and from the supervisory control and data acquisition (SCADA) and other human-machine interface (HMI) producers in order to interface the two. Once a hardware manufacturer had developed their OPC Server for the new hardware device, their work was done with regards to allowing any 'top end' to access their device, and once the SCADA producer had developed their OPC client, it allowed access to any hardware with an OPC compliant server.
OPC servers provide a method for different software packages (as long as it is an OPC client) to access data from a process control device, such as a programmable logic controller (PLC) or distributed control system (DCS). Traditionally, any time a package needed access to data from a device, a custom interface or driver had to be written. There is nothing in the OPC specifications to restrict the server to providing access to a process control device. OPC Servers can be written for anything from getting the internal temperature of a microprocessor to the current temperature in Monument Valley.[citation needed]
Once an OPC Server is written for a particular device, it can be reused by any application that is able to act as an OPC client. OPC servers can be linked and communicate to other servers. OPC servers use Microsoft's OLE technology (also known as the Component Object Model, or COM) to communicate with clients. COM technology permits a standard for real-time information exchange between software applications and process hardware to be defined.
Some OPC specifications are published, but others are available only to members of the OPC Foundation. So while no company "owns" OPC and anyone can develop an OPC server whether or not they are a member of the OPC Foundation, non-members will not necessarily be using the latest specifications. It is up to each company that requires OPC products to ensure that their products are certified and that their system integrators have the necessary training.[citation needed]
See also
[edit]References
[edit]- ^ a b "What is OPC?". OPC Foundation web site. Retrieved October 7, 2021.
- ^ OPC A&E specification
- ^ Li Zheng and H. Nakagawa (2002). OPC (OLE for process control) specification and its developments August 5, 2002. Vol. 2. IEEE. pp. 917–920. doi:10.1109/SICE.2002.1195286. ISBN 0-7803-7631-5. S2CID 114855720.
{{cite book}}
:|work=
ignored (help) - ^ "OPC Xi Interface Approved". Automation World. December 1, 2009. Retrieved October 7, 2021.
- ^ a b Gary Mintchell (November 20, 2009). "OPC Xi Updated". Feed Forward blog. Archived from the original on May 16, 2010. Retrieved October 7, 2021.
- ^ "History". OPC Foundation web site. Retrieved October 7, 2021.
- ^ "OPC Foundation and MTConnect Institute Announce a Memorandum of Understanding". Press release. OPC Foundation. October 21, 2010. Archived from the original on June 16, 2011. Retrieved October 7, 2021.
External links
[edit]- FatRat Library - free OPC server developers toolkit
- OpenOPC - Open Source OPC client development in Python
- OPC Foundation
- OPC Programmers' Connection
- OPC Unified Architecture Address Space e-book Archived 2009-01-30 at the Wayback Machine
- prOpc Library - Open Source OPC server/client toolkit in Delphi