從2000年初以來(lái),我們就一直在使用OPC軟件互操作性標(biāo)準(zhǔn),而那些正準(zhǔn)備踏入和想要踏入工業(yè)自動(dòng)化領(lǐng)域的人們卻對(duì)這些含義感到困惑。 所以在本中,我將系統(tǒng)地為你梳理OPC知識(shí)。 OPC首字母縮寫(xiě)詞代表什么?
問(wèn)一個(gè)OPC老手,他們或許會(huì)笑,因?yàn)樗麄冎烙泻芏嗪x!在經(jīng)典的且程序化的說(shuō)法是:O LE for P rocess C ontrol(用于過(guò)程控制的OLE)。OLE 或?qū)ο箧溄雍颓度胧荳indows的基本早期構(gòu)建塊,允許應(yīng)用程序在它們之間共享復(fù)雜的信息。我記得Windows 3.0的第一個(gè)演示中,人們將 Excel電子表格嵌入到 Microsoft Word文檔中,以及更新電子表格,打開(kāi)Word和更新文檔的重要性。原始OPC標(biāo)準(zhǔn)源自該技術(shù)和 COM 或 Windows 組件對(duì)象模型。 從那以后,我們會(huì)聽(tīng)到很多其他的一些定義,但是比較出名的是現(xiàn)在官方OPC基金會(huì)所給出的說(shuō)法是:它的含義是O pen P latform C ommunications(開(kāi)放平臺(tái)通信)。其實(shí)無(wú)論它的定義是什么,其目標(biāo)保持不變:消除自動(dòng)化軟件和硬件平臺(tái)之間互操作性的障礙,為用戶(hù)提供選擇。 OPC Client(OPC客戶(hù)端)和OPC Server(OPC服務(wù)器)之間有什么區(qū)別? OPC客戶(hù)端請(qǐng)求數(shù)據(jù),有時(shí)也想寫(xiě)入數(shù)據(jù)。如果允許的話(huà),服務(wù)器會(huì)響應(yīng)客戶(hù)端的請(qǐng)求并提供數(shù)據(jù)或接受其寫(xiě)入。最簡(jiǎn)單的形式就是這樣。 可以將OPC服務(wù)器看作是協(xié)議轉(zhuǎn)換器,OPC服務(wù)器使用設(shè)備的專(zhuān)用協(xié)議與設(shè)備通信,然后使用OPC Classic和OPC UA規(guī)范定義的標(biāo)準(zhǔn)化格式提供對(duì)該數(shù)據(jù)的訪(fǎng)問(wèn)。通常情況下,OPC服務(wù)器在OPC客戶(hù)端請(qǐng)求讀取或?qū)懭霐?shù)據(jù)之前不會(huì)執(zhí)行任何操作。而某些OPC服務(wù)器可以配置為即使在沒(méi)有客戶(hù)端請(qǐng)求的情況下也可以從設(shè)備輪詢(xún)數(shù)據(jù)。這通常是為了允許OPC服務(wù)器在其內(nèi)部緩存中就具有當(dāng)前數(shù)據(jù)并且在客戶(hù)端請(qǐng)求它時(shí)就已經(jīng)準(zhǔn)備就緒(但是是以產(chǎn)生可能不需要的通信流量為代價(jià)。)目前許多OPC服務(wù)器為用戶(hù)提供了靈活性,可以根據(jù)應(yīng)用需求來(lái)進(jìn)行配置。 如果我的控制硬件供應(yīng)商說(shuō)他們支持OPC,那么為什么我還需要OPC服務(wù)器? 當(dāng)硬件供應(yīng)商表示他們支持OPC時(shí),通常并不意味著他們直接將OPC服務(wù)器嵌入到他們的硬件中。他們的意思是他們擁有OPC服務(wù)器軟件,該軟件在某個(gè)基于Windows的計(jì)算機(jī)上運(yùn)行,????該計(jì)算機(jī)與其硬件對(duì)話(huà)并使用一個(gè)或多個(gè)OPC標(biāo)準(zhǔn)公開(kāi)數(shù)據(jù)。此外,對(duì)于某些硬件供應(yīng)商,可能需要額外的許可費(fèi)才能啟用此OPC服務(wù)器功能。我們經(jīng)常聽(tīng)到用戶(hù)對(duì)這一點(diǎn)感到困惑。其實(shí)只是為了在銷(xiāo)售時(shí)更好聽(tīng)一點(diǎn),才會(huì)說(shuō)“我們支持OPC”,所以在此需要澄清一下供應(yīng)商所說(shuō)的內(nèi)容。 現(xiàn)在,一些供應(yīng)商開(kāi)始利用多平臺(tái)功能,并將OPC UA服務(wù)器直接嵌入到他們的PLC中。如果你的 HMI或SCADA軟件支持OPC UA,那么這可能會(huì)非常方便。如果你的客戶(hù)端應(yīng)用程序不支持OPC UA,那么則可以使用OPC網(wǎng)關(guān)應(yīng)用程序來(lái)幫助你從OPC UA 連接到 DA。 OPC服務(wù)器必須在Server類(lèi)計(jì)算機(jī)和操作系統(tǒng)上運(yùn)行嗎? OPC服務(wù)器不需要服務(wù)器類(lèi)硬件或操作系統(tǒng)。有些供應(yīng)商可能會(huì)針對(duì)其具體實(shí)施要求這樣做,但OPC標(biāo)準(zhǔn)并沒(méi)有規(guī)定這一點(diǎn)。OPC服務(wù)器軟件通常相當(dāng)輕巧,可以輕松地與臺(tái)式PC上的其他軟件應(yīng)用程序共存。你可以咨詢(xún)你的OPC服務(wù)器供應(yīng)商,了解你的具體應(yīng)用要求。(以Software Toolbox的產(chǎn)品為例,在它的每個(gè)產(chǎn)品網(wǎng)站區(qū)域都有一個(gè)規(guī)格頁(yè)面,雖然他們的OPC服務(wù)器通常不需要服務(wù)器級(jí)硬件或操作系統(tǒng)。) 2個(gè)OPC服務(wù)器如何相互通信?而2個(gè)OPC客戶(hù)端又如何相互通信? 在OPC世界中,通常客戶(hù)端是與服務(wù)器通信的。但是好消息是OPC服務(wù)器可以與其他OPC服務(wù)器通信,OPC客戶(hù)端也可以使用相同的方式。 為什么兩個(gè)OPC服務(wù)器需要通信?你可以想象一下,你有PLC供應(yīng)商A和PLC供應(yīng)商B,并且有一個(gè)OPC服務(wù)器需要使用兩個(gè)不同的PLC供應(yīng)商的特定設(shè)備協(xié)議與每個(gè)服務(wù)器進(jìn)行通信。你希望將數(shù)據(jù)從PLC A移動(dòng)到PLC B,這意味著2個(gè)不同的OPC服務(wù)器需要相互通信。你可以使用OPC Bridging(OPC橋)軟件應(yīng)用程序執(zhí)行此操作。OPC橋接軟件應(yīng)用程序是OPC客戶(hù)端應(yīng)用程序,可以連接到許多不同的OPC服務(wù)器,然后允許你映射兩個(gè)OPC服務(wù)器之間的數(shù)據(jù)移動(dòng),指定方向,數(shù)據(jù)轉(zhuǎn)換等。 在OPC客戶(hù)端相互通信的情況下,最常見(jiàn)的應(yīng)用是需要交換數(shù)據(jù)的兩個(gè)不同的SCADA或HMI軟件應(yīng)用程序。第一個(gè)解決方案是查看HMI或SCADA軟件是否支持OPC服務(wù)器接口以及OPC客戶(hù)端。許多人都是這樣做的,那么如果是這樣,那么問(wèn)題就解決了兩個(gè)客戶(hù)端應(yīng)用程序使用其OPC客戶(hù)端接口與彼此的OPC服務(wù)器接口進(jìn)行通信。如果沒(méi)有,并且客戶(hù)端純粹是OPC DA,UA或DA和UA客戶(hù)端,那么使用諸如 Cogent DataHub 之類(lèi)的應(yīng)用程序也將是解決方案。Cogent DataHub可以充當(dāng)OPC服務(wù)器,其中包含你定義的標(biāo)記列表,并且兩個(gè)OPC客戶(hù)端都可以讀取/寫(xiě)入這些公共標(biāo)記。 什么是 OPC數(shù)據(jù)質(zhì)量 和 TImestamps ?
在 OPC 之前,當(dāng)你的 HMI 或 SCADA 軟件用內(nèi)置驅(qū)動(dòng)程序讀取數(shù)據(jù)之前,它要么得到數(shù)據(jù)要么沒(méi)有數(shù)據(jù)。 如果你沒(méi)有得到數(shù)據(jù),你就無(wú)法知道最后一次獲得數(shù)據(jù)是什么時(shí)候。 兩者之間沒(méi)有差別。 使用OPC服務(wù)器,它們可以緩存或保留從設(shè)備讀取的最后一個(gè)值。它們還會(huì)在緩存中為數(shù)據(jù)加時(shí)間戳(TImestamps),通常使用OPC服務(wù)器從設(shè)備讀取值的時(shí)間。某些設(shè)備存儲(chǔ)上次更改數(shù)據(jù)的時(shí)間戳,并可使用設(shè)備特定的通信協(xié)議將其傳遞給OPC服務(wù)器。如果設(shè)備支持該設(shè)備并且OPC服務(wù)器支持它,那么則可以使用設(shè)備時(shí)間戳。(如:支持該功能的協(xié)議的設(shè)備時(shí)間戳的Software Toolbox產(chǎn)品包括TOP Server DNP,IEC 61850和IEC 60870驅(qū)動(dòng)程序。) OPC質(zhì)量是OPC服務(wù)器告訴OPC客戶(hù)更多關(guān)于它們提供價(jià)值的一種方式。這樣做的方法是傳遞一個(gè)數(shù)字以及值和時(shí)間戳。在OPC中我們稱(chēng)之為VQT或"Value,Quality,Timestamp"(“價(jià)值,質(zhì)量,時(shí)間戳”)。OPC質(zhì)量編號(hào)實(shí)際上是通過(guò)設(shè)置字位來(lái)確定的,這會(huì)導(dǎo)致產(chǎn)生不同的值。值192表示“良好”質(zhì)量,這意味著OPC服務(wù)器最后一次輪詢(xún)?cè)O(shè)備它能夠成功獲取數(shù)據(jù),因此OPC客戶(hù)端可以信任該值。值為0表示質(zhì)量不佳,通常表示OPC服務(wù)器與其輪詢(xún)的設(shè)備之間存在通信故障。OPC服務(wù)器可以使用一系列其他值來(lái)表示質(zhì)量差的原因,但目前它們并未得到廣泛實(shí)施。我之前有發(fā)過(guò)一篇關(guān)于OPC數(shù)據(jù)質(zhì)量的文章<<一分鐘告訴你什么是OPC DA質(zhì)量代碼>>,感興趣的朋友可以去看看。 其實(shí)最重要的是OPC客戶(hù)端應(yīng)用程序通??梢耘渲脼楦乃鼈?cè)诓僮鲉T屏幕或歷史數(shù)據(jù)庫(kù)中向用戶(hù)顯示值的方式,以便人們知道該值不值得信任和不值得信任原因。 關(guān)于OPC UA,OPC DA等相關(guān)內(nèi)容,我會(huì)在下一篇文章中繼續(xù)詳細(xì)講解,未完待續(xù)。 |
|