專利名稱:可編程邏輯控制器協(xié)議轉(zhuǎn)換器的制作方法
可編程邏輯控制器協(xié)議轉(zhuǎn)換器 本申請依據(jù)35U. S.C. § 119(e)要求享受2007年7月26日遞交的臨時申請 No. 60/952, 118的優(yōu)先權(quán),其全部內(nèi)容以引用方式并入本文。
背景技術(shù):
許多工業(yè)設(shè)施采用通常稱為PLC(可編程邏輯控制器的簡稱)的設(shè)備。已知地,PLC 提供了基于微處理器的工業(yè)控制系統(tǒng)。PLC通過數(shù)據(jù)鏈路與其他處理控制部件通信。在處 理控制中,PLC用于簡單的開關(guān)任務(wù)(例如打開和關(guān)閉閥門)、PID控制、復(fù)雜數(shù)據(jù)操作、算 術(shù)運算、定時和處理和機器控制等。例如,PLC可連接至被配置為提供溫度、壓力、流速、以 及與工業(yè)操作的操作狀態(tài)相關(guān)的各種其他數(shù)值的傳感器。類似地,PLC還可收集與離散值 相關(guān)的信息,例如給定的閥門是打開的還是關(guān)閉的。PLC可被配置為在特定地址、寄存器、或 數(shù)據(jù)庫位置中存儲這種信息。 此外,在PLC中包括的微處理器可被配置為基于所報告的數(shù)據(jù)參與各種處理控制 行為。例如,PLC可被編程為保持處理室內(nèi)的特定溫度。在這種情況下,當(dāng)溫度下降到指定 最小值以下時,PLC可執(zhí)行增加溫度的行為(例如關(guān)閉/打開閥門,增加流向燃燒室的燃料 等)。類似地,當(dāng)溫度超過指定最大值時,PLC可執(zhí)行相反的行為降低溫度。
此外,PLC可被配置為響應(yīng)于在任意給定的時間點對于給定傳感器記錄什么值的 相關(guān)信息的請求。這個請求典型地采用對于特定存儲器位置或數(shù)據(jù)庫值的請求的形式。此 外,必須使用PLC "知曉"的通信協(xié)議來對這個請求格式化。在一些情況下,可通過向PLC 增加通信卡來提高PLC表達(dá)給定通信協(xié)議的能力。然而,向PLC增加通信卡頻繁地需要大 量的PLC配置,并且通常需要工廠停工,這可能極端破壞性。此外, 一些通信卡僅提供從PLC 設(shè)備對有限數(shù)據(jù)的訪問-因此,取決于工廠操作者期望從PLC取出什么樣的數(shù)據(jù),這個方法 可能很容易失敗。
發(fā)明內(nèi)容
本發(fā)明的一個實施例提供一種從可編程邏輯控制器(PLC)設(shè)備暴露數(shù)據(jù)的方法。 所述方法一般地包括訪問用于識別要暴露的多個PLC地址的配置文件;和初始化共享的 存儲器陣列。所述共享的存儲器陣列包括多個單元,其每個用于存儲從所述PLC設(shè)備獲得 的數(shù)據(jù)。所述方法還包括調(diào)用第一線程。所述第一線程一般地可被配置為重復(fù)地發(fā)送對 于所識別的PLC地址之一的請求,以及響應(yīng)于在所述共享的存儲器陣列的單元之一中的請 求,存儲由所述PLC設(shè)備返回的數(shù)據(jù)值。每個請求根據(jù)第一通信協(xié)議來配置。所述方法還 包括調(diào)用第二線程。所述第二線程一般地可被配置為接收根據(jù)第二通信協(xié)議傳送的對 于在所述共享的存儲器陣列中存儲的數(shù)據(jù)值中的一個或多個的請求;取出所請求的一個或 多個數(shù)據(jù)值;以及以與所述第二通信協(xié)議一致的格式返回所請求的數(shù)據(jù)值。
本發(fā)明的另一實施例包括一種計算機可讀存儲介質(zhì),其包括被配置為執(zhí)行從PLC 設(shè)備暴露數(shù)據(jù)的非侵入方法的程序,所述程序包括用于執(zhí)行操作的指令。所述操作一般地 可包括訪問用于識別要暴露的多個PLC地址的配置文件;和初始化共享的存儲器陣列。所述共享的存儲器陣列包括多個單元,其每個用于存儲從所述PLC設(shè)備獲得的數(shù)據(jù)。所述操 作還包括調(diào)用第一線程。所述第一線程一般地可被配置為重復(fù)地發(fā)送對于所識別的PLC 地址之一的請求,以及響應(yīng)于在所述共享的存儲器陣列的單元之一中的請求,存儲由所述 PLC設(shè)備返回的數(shù)據(jù)值。每個請求根據(jù)第一通信協(xié)議來配置。所述操作還包括調(diào)用第二 線程。所述第二線程一般地可被配置為接收根據(jù)第二通信協(xié)議傳送的對于在所述共享的 存儲器陣列中存儲的數(shù)據(jù)值中的一個或多個的請求;取出所請求的一個或多個數(shù)據(jù)值;以 及以與所述第二通信協(xié)議一致的格式返回所請求的數(shù)據(jù)值。 本發(fā)明的另一實施例包括一種系統(tǒng),其具有處理器以及存儲器,所述存儲器包含 被配置為執(zhí)行從PLC設(shè)備獲得數(shù)據(jù)值的操作的程序。由所述程序執(zhí)行的操作一般地可包 括訪問用于識別要暴露的多個PLC地址的配置文件;和初始化共享的存儲器陣列。所述共 享的存儲器陣列包括多個單元,其每個用于存儲從所述PLC設(shè)備獲得的數(shù)據(jù)。所述操作還 包括調(diào)用第一線程。所述第一線程一般地可被配置為重復(fù)地發(fā)送對于所識別的PLC地址 之一的請求;以及響應(yīng)于在所述共享的存儲器陣列的單元之一中的請求,存儲由所述PLC 設(shè)備返回的數(shù)據(jù)值。每個請求根據(jù)第一通信協(xié)議來配置。所述操作還包括調(diào)用第二線程。 所述第二線程一般地可被配置為接收根據(jù)第二通信協(xié)議傳送的對于在所述共享的存儲器 陣列中存儲的數(shù)據(jù)值中的一個或多個的請求;取出所請求的一個或多個數(shù)據(jù)值;以及以與 所述第二通信協(xié)議一致的格式返回所請求的數(shù)據(jù)值。
為了進一步理解本發(fā)明的特點和目的,可參照以下具體實施方式
的描述并結(jié)合附 圖,在附圖中對于類似的元素給出相同或相似的標(biāo)號,其中 圖1是根據(jù)本發(fā)明一個實施例的被監(jiān)視工業(yè)設(shè)施和操作控制中心的概念性視圖, 所述操作控制中心包括SCADA系統(tǒng),其被配置為與PLC轉(zhuǎn)換器系統(tǒng)和PLC設(shè)備通信;
圖2是示出根據(jù)本發(fā)明一個實施例被配置為執(zhí)行PLC協(xié)議轉(zhuǎn)換處理的PLC轉(zhuǎn)換器 系統(tǒng)的部件的框圖; 圖3是示出根據(jù)本發(fā)明一個實施例由PLC協(xié)議轉(zhuǎn)換器使用的共享的存儲器陣列以 允許使用期望的通信協(xié)議與PLC設(shè)備通信的概念圖;以及 圖4示出根據(jù)本發(fā)明一個實施例的PLC協(xié)議轉(zhuǎn)換器使用期望的通信協(xié)議與PLC設(shè) 備通信的方法。
具體實施例方式
本發(fā)明實施例提供一種PLC協(xié)議轉(zhuǎn)換器系統(tǒng),其允許SCADA系統(tǒng)使用期望的通信 協(xié)議與PLC設(shè)備有效地通信,特別在PLC設(shè)備沒有"說出"期望的通信協(xié)議的情況下。SCADA 系統(tǒng)(監(jiān)督控制和數(shù)據(jù)獲取系統(tǒng)的簡稱)使得處理數(shù)據(jù)中心化,并允許遠(yuǎn)程監(jiān)視和控制各 種工業(yè)系統(tǒng)。SCADA系統(tǒng)可被配置為從遠(yuǎn)程位置實時收集數(shù)據(jù),以在流水線(例如烴流水 線、或氫流水線)中控制設(shè)備和條件。例如,SCADA系統(tǒng)可被配置為向PLC控制器發(fā)送對于 在存儲器中的地址處記錄的值的請求,其表示在工業(yè)工廠中傳感器那時的當(dāng)前值、或在工 業(yè)工廠中部件的離散狀態(tài)。對于與PLC通信的SCADA系統(tǒng),兩者必須能夠使用兼容的通信 協(xié)議進行通信。
在一個實施例中,PLC轉(zhuǎn)換器系統(tǒng)可以是這樣的計算機(例如嵌入式系統(tǒng)),其被 配置為通過執(zhí)行應(yīng)用程序與PLC設(shè)備和SCADA系統(tǒng)通信。實踐中,程序可讀取配置文件,其 識別從PLC期望什么數(shù)據(jù)元素(例如存儲器值、寄存器值、或數(shù)據(jù)庫字段值),以及映射從 PLC收集的數(shù)據(jù)的一組存儲器地址(例如MODBUS地址)。可基于配置文件中的存儲器地址 將收集的數(shù)據(jù)存儲在共享的存儲器陣列的單元內(nèi)??墒褂靡阎耐ㄐ艆f(xié)議(例如ftp)將 配置文件發(fā)送至PLC轉(zhuǎn)換器。 此外,程序可包括第一線程,其被配置為使用PLC設(shè)備知曉的通信協(xié)議逐個地連 續(xù)讀取期望的PLC地址。例如,PLC轉(zhuǎn)換器可使用串行連接物理地連接至PLC設(shè)備,從而允 許程序使用PLC設(shè)備知曉的串行線協(xié)議發(fā)送對于信息的請求。在特定實施例中,所述協(xié)議 是已知的非智能終端協(xié)議(NITP)。第一線程可將數(shù)據(jù)值存儲在程序存儲器中的共享數(shù)據(jù)陣 列中。因此,第一線程從PLC設(shè)備暴露在配置文件中指定的數(shù)據(jù)。 同時,程序還可包括第二線程,其被配置為根據(jù)第二通信協(xié)議例如向SCADA系統(tǒng) 供應(yīng)在共享數(shù)據(jù)陣列中的數(shù)據(jù)。例如,第二線程可使用已知的TCP-MODBUS協(xié)議從共享存儲 器向"知曉"TCP-MODBUS協(xié)議的SCADA系統(tǒng)供應(yīng)數(shù)據(jù)。這個操作允許來自PLC設(shè)備的數(shù)據(jù) 對于經(jīng)由PLC轉(zhuǎn)換器系統(tǒng)上存在的以太網(wǎng)端口接收的任意MODBUS主輪詢(poll)實現(xiàn)共 享。因此,實踐中,PLC轉(zhuǎn)換器系統(tǒng)偽裝成PLC設(shè)備,用于響應(yīng)MODBUS消息請求。此外,如 果期望從第一線程暴露的集增加(或去除)數(shù)據(jù)點,則用戶簡單地修改配置文件,(例如經(jīng) 由ftp)將其上傳至PLC轉(zhuǎn)換器系統(tǒng),并(例如使用基于HTTP的診斷接口 )重啟程序。
有利地,本發(fā)明實施例可用于提供對于PLC數(shù)據(jù)庫中的任意數(shù)據(jù)類型(例如數(shù)字 的、離散的等)的只讀訪問,以及在SCADA系統(tǒng)知曉的協(xié)議下提供數(shù)據(jù)。此外,本發(fā)明實施 例不需要PLC設(shè)備自身中的任何配置、或任何處理器重啟/關(guān)閉來運行;可在不存在對PLC 設(shè)備的任何影響的情況下連接至/斷開連接至PLC設(shè)備;以及可(例如經(jīng)由TCP連接)連 接至SCADA系統(tǒng),以允許遠(yuǎn)程配置、管理、和使用。 注意,在這里相對于特定PLC設(shè)備-即5x5系列設(shè)備_從德國柏林西門子公司購 買-描述了本發(fā)明實施例。已知地,5x5系列(特別地505系列)提供這樣一種PLC設(shè)備,其 能夠響應(yīng)于在RS-232串聯(lián)上使用非智能終端協(xié)議(NITP)格式化的請求,但是不支持(至 少沒有某種附加通信卡)使用MODBUS輪詢的數(shù)據(jù)的請求。此外,還已知地,即使具有附加通 信卡,由該通信卡提供的MODBUS數(shù)據(jù)映射僅允許訪問PLC數(shù)據(jù)庫中可用數(shù)據(jù)類型的子集。 然而,本領(lǐng)域普通技術(shù)人員可理解,5x5系列設(shè)備僅是示例性的,并且本發(fā)明不限于此。
本發(fā)明一個實施例可作為計算機系統(tǒng)使用的一個或多個軟件程序來實現(xiàn)。程序包 括執(zhí)行本發(fā)明實施例(包括這里所述的方法)的指令,并可存儲在各種計算機可讀介質(zhì)上。 示例性計算機可讀介質(zhì)包括但不限于(i)在上面永久存儲信息的不可寫存儲介質(zhì)(例如 計算機中的只讀存儲設(shè)備,例如CD-ROM或DVD-ROM驅(qū)動器可讀的CD-ROM或DVD-ROM盤)和 /或(ii)在上面存儲可變信息的可寫存儲介質(zhì)(例如在盤驅(qū)動器中的軟盤、硬盤驅(qū)動器、或 閃存設(shè)備)。其他介質(zhì)包括向計算機傳送信息所經(jīng)由的通信介質(zhì),例如計算機或電話網(wǎng)絡(luò), 包括無線通信網(wǎng)絡(luò)。后一實施例特別地包括向/從因特網(wǎng)和其他網(wǎng)絡(luò)發(fā)送信息。當(dāng)承載執(zhí) 行本發(fā)明功能的計算機可讀指令時,這種計算機可讀介質(zhì)代表本發(fā)明的實施例。
此外,這里的描述引用了本發(fā)明的實施例。然而,應(yīng)理解,本發(fā)明不限于任何特定 描述的實施例。相反,無論是否與不同實施例相關(guān),以下特征和元素的任意組合可考慮為實現(xiàn)和實踐本發(fā)明。此外,在各個實施例中,本發(fā)明提供了相比于現(xiàn)有技術(shù)的多個優(yōu)點。然而, 盡管本發(fā)明實施例可實現(xiàn)相比于其他可能方案和/或相比于現(xiàn)有技術(shù)的優(yōu)點,但是通過給 定實施例是否實現(xiàn)特定優(yōu)點并不構(gòu)成對本發(fā)明的限制。因此,以下方面、特點、實施例和優(yōu) 點僅是示例性的,并非認(rèn)為是所附權(quán)利要求的元素或限制,除非在權(quán)利要求中清楚闡述。同 樣,對"本發(fā)明"的提及不應(yīng)該理解為這里公開的任意發(fā)明主題的概括,并且不應(yīng)該認(rèn)為是 所附權(quán)利要求的元素或限制,除非在權(quán)利要求中清楚闡述。 —般地,被執(zhí)行以實現(xiàn)本發(fā)明實施例的例程可以是操作系統(tǒng)或特定應(yīng)用、部件、程 序、模塊、對象、或指令序列的一部分。此外,程序包括駐留在程序本地中或在存儲器中或存 儲設(shè)備上找到的變量和數(shù)據(jù)結(jié)構(gòu)。此外,以下描述的各個程序可基于在本發(fā)明特定實施例 中實現(xiàn)的應(yīng)用來識別。然而,應(yīng)理解,隨后的任意特定程序術(shù)語僅為了方便而使用,因此本 發(fā)明不限于僅在由這些術(shù)語識別和/或暗示的任意特定應(yīng)用中使用。 圖1是根據(jù)本發(fā)明一個實施例的被監(jiān)視工業(yè)設(shè)施105和操作控制中心130的概念 性視圖,所述操作控制中心130包括SCADA系統(tǒng)135,其被配置為與PLC轉(zhuǎn)換器系統(tǒng)120和 PLC設(shè)備115通信。如圖所示,被監(jiān)視工業(yè)設(shè)施105包括由PLC設(shè)備115監(jiān)視和管理的工廠 系統(tǒng)110的集合。包括工廠系統(tǒng)110的集合,以代表由PLC設(shè)備115控制的各種工業(yè)處理。 工廠系統(tǒng)的實例包括低溫空氣分離單元、水處理工廠、液體產(chǎn)品噴霧器、和氫凈化單元。如 上所述,PLC設(shè)備115提供了可編程邏輯控制器,其被配置為通過數(shù)據(jù)鏈路與其他處理控制 部件通信,并且PLC設(shè)備115可用在簡單的開關(guān)任務(wù)(例如打開和關(guān)閉閥門)的處理控制、 PID控制、復(fù)雜數(shù)據(jù)操作、算術(shù)運算、定時和處理和機器控制等中。在特定實施例中,PLC設(shè) 備115是購于德國柏林的西門子公司的5x5系列設(shè)備。當(dāng)然,可使用具有這里所述特征的 其他PLC設(shè)備。 在一個實施例中,PLC設(shè)備115可響應(yīng)于來自PLC轉(zhuǎn)換器系統(tǒng)120的請求。這種請 求可使用通信協(xié)議來格式化,并且可以在PLC設(shè)備115和PLC轉(zhuǎn)換器系統(tǒng)120之間建立的 數(shù)據(jù)鏈路上發(fā)送。例如,PLC轉(zhuǎn)換器系統(tǒng)120可被配置為使用串行線連接(由箭頭117所 示)與PLC設(shè)備115通信,以使用NITP協(xié)議發(fā)送請求(和接收響應(yīng))。
同時,PLC轉(zhuǎn)換器系統(tǒng)120還可被配置為通過網(wǎng)絡(luò)137(由箭頭119所示)與SCADA 系統(tǒng)135通信。例如,SCADA系統(tǒng)135可向請求已識別的MODBUS地址塊的PLC轉(zhuǎn)換器系統(tǒng) 120提交MODBUS主輪詢。響應(yīng)地,在PLC轉(zhuǎn)換器系統(tǒng)120上執(zhí)行的應(yīng)用程序可從共享的存 儲器陣列取出所請求地址的值,并發(fā)送至SCADA系統(tǒng)135。 在特定實施例中,PLC轉(zhuǎn)換器系統(tǒng)120是購于M0Xa⑧公司的UC-7110型嵌入式 計算機系統(tǒng),其配置有多線程應(yīng)用程序,如這里詳細(xì)所述。已知地,UC-7110型提供具有兩 個串聯(lián)端口的基于RISC的準(zhǔn)備運行計算機,和雙局域網(wǎng)。當(dāng)然,本發(fā)明實施例可適于使用 具有這里所述特征的其他計算設(shè)備。 在一個實施例中,將來自SCADA系統(tǒng)135的請求的結(jié)果發(fā)送至操作控制中心130。 操作控制中心130可采用多個計算機系統(tǒng),這些系統(tǒng)運行用于協(xié)調(diào)、監(jiān)視、和控制被監(jiān)視工 業(yè)設(shè)施105的操作的應(yīng)用程序。圖示地,流水線操作控制中心130包括SCADA系統(tǒng)135、 SCADA數(shù)據(jù)庫145、 HTTP服務(wù)器148和客戶端系統(tǒng)170,他們被配置為在局域網(wǎng)137上彼此 通信。注意,包括在操作控制中心130中所示的計算機系統(tǒng)135和170以代表現(xiàn)有的計算 機系統(tǒng),例如臺式計算機、服務(wù)器計算機、膝上型計算機、平板式計算機等。然而,本發(fā)明實施例不限于任意特定計算系統(tǒng)、應(yīng)用、設(shè)備、架構(gòu)或網(wǎng)絡(luò),相反,可適用于利用新的計算系統(tǒng) 和平臺(在他們可用時)。此外,本領(lǐng)域普通技術(shù)人員將認(rèn)識到,簡化計算機系統(tǒng)135、148、 和170的視圖以突出本發(fā)明的多個方面,并且計算系統(tǒng)和網(wǎng)絡(luò)典型地包括圖1中沒有示出 的多個部件。 如上所述,SCADA系統(tǒng)135可被配置為使得來自各個工業(yè)操作的處理數(shù)據(jù)中心化, 并允許遠(yuǎn)程監(jiān)視和控制被監(jiān)視的工業(yè)設(shè)施105。圖示地,將SCADA系統(tǒng)135接收的數(shù)據(jù)存儲 在數(shù)據(jù)庫145中。此外,瀏覽器應(yīng)用175可被配置為從數(shù)據(jù)庫145請求與被監(jiān)視工業(yè)操作的 當(dāng)時現(xiàn)存(或歷史)狀態(tài)相關(guān)的數(shù)據(jù)。典型地,HTTP服務(wù)器148被配置為發(fā)送由web瀏覽 器(例如SCADA瀏覽器應(yīng)用175)呈現(xiàn)的HTML網(wǎng)頁,其中網(wǎng)頁的內(nèi)容以結(jié)構(gòu)化的形式表現(xiàn) 來自數(shù)據(jù)庫142的信息。由此,客戶端計算機系統(tǒng)170包括web瀏覽器175,其用于呈現(xiàn)從 web服務(wù)器HTTP服務(wù)器148接收的信息。注意,盡管將數(shù)據(jù)庫145和web服務(wù)器148示出 為單獨的系統(tǒng),但是本領(lǐng)域普通技術(shù)人員可認(rèn)識到,這些部件可以以各種方式組織和配置。
圖2是示出根據(jù)本發(fā)明一個實施例被配置為執(zhí)行PLC協(xié)議轉(zhuǎn)換處理的PLC轉(zhuǎn)換器 系統(tǒng)120的部件的框圖。如圖所示,PLC轉(zhuǎn)換器系統(tǒng)120包括CPU 215、存儲設(shè)備220、存儲 器230、串行連接端口 205和以太網(wǎng)連接端口 210,其每個連接至總線211。包括CPU 215以
代表單個cpu、多個cpu、具有多個處理核的單個cpu等。例如,Moxa⑧的嵌入式系統(tǒng)包括
ARM932位192MHz處理器。存儲設(shè)備220可提供用于由PLC轉(zhuǎn)換器系統(tǒng)120使用的應(yīng)用程 序和數(shù)據(jù)的永久存儲區(qū)。存儲設(shè)備220的實例包括一個或多個硬盤驅(qū)動器、固態(tài)存儲器設(shè) 備、光學(xué)介質(zhì)等。圖示地,示出存儲器220包括配置文件220。在一個實施例中,配置文件 225提供一組逗號分隔值(CSV),其指示通過PLC轉(zhuǎn)換器系統(tǒng)120使得哪個PLC設(shè)備地址可 用,以及通過PLC轉(zhuǎn)換器系統(tǒng)120使得每個這樣的地址應(yīng)該映射到哪些MODBUS地址(例如 哪個MODBUS地址)。 存儲器230可以是一個存儲器設(shè)備或其組合,包括隨機存取存儲器、非易失性或 備用存儲器(例如可編程或閃速存儲器、只讀存儲器等)。圖示地,存儲器230存儲操作系 統(tǒng)260、共享的存儲器陣列250、和PLC協(xié)議轉(zhuǎn)換器應(yīng)用235。操作系統(tǒng)260用于管理硬件和 在PLC轉(zhuǎn)換器系統(tǒng)120上執(zhí)行的軟件,包括PLC協(xié)議轉(zhuǎn)換器應(yīng)用235。此外,操作系統(tǒng)260 可包括與PLC轉(zhuǎn)換器系統(tǒng)120和PLC協(xié)議轉(zhuǎn)換器應(yīng)用235交互所需的任意數(shù)目的實用應(yīng)用 (例如FTP或HTTP服務(wù)器處理)。 如圖所示,PLC協(xié)議轉(zhuǎn)換器應(yīng)用235包括第一線程240 (標(biāo)記為NITP線程)和第 二線程245(標(biāo)記為MODBUS線程)。在一個實施例中,第一線程240被配置為在PLC設(shè)備 115中連續(xù)讀取在配置文件220中標(biāo)識的地址。此外,可使用PLC設(shè)備115知曉的通信協(xié)議 (例如西門子公司505系列PLC知曉的NITP協(xié)議)逐個地讀取地址。第一線程240可在共 享的存儲器陣列250中存儲從PLC設(shè)備115讀取的數(shù)據(jù)值。因此,第一線程240從PLC設(shè) 備115暴露在配置文件220中指定的數(shù)據(jù)。 在開始時,PLC協(xié)議轉(zhuǎn)換器應(yīng)用235讀取配置文件220,其描述期望哪些PLC地址 以及將他們映射到哪些MODBUS地址。在一個實施例中,評估從配置文件220讀取的信息, 以構(gòu)建第一線程240使用的信息集,收集來自PLC設(shè)備115的數(shù)據(jù)值。例如,在一個消息中 可以傳送多少個數(shù)據(jù)元素方面NITP是受限的,因此消息一般被構(gòu)建為確保PLC設(shè)備115不 會因為數(shù)據(jù)請求而負(fù)擔(dān)過多。一旦構(gòu)建消息,則第一線程240開始逐個地將他們發(fā)送至PLC設(shè)備115,每次在發(fā)送下一個之前等待響應(yīng)。在共享的存儲器陣列250中存儲來自每個后續(xù) 響應(yīng)的數(shù)據(jù),以由PLC協(xié)議轉(zhuǎn)換器應(yīng)用235的第二線程245使用。在一個實施例中,第一線 程240在無限循環(huán)中按規(guī)律間隔重復(fù)發(fā)送消息,直到接收到指引PLC協(xié)議轉(zhuǎn)換器應(yīng)用235 關(guān)閉的中斷。 第二線程245 —般被配置為向SCADA系統(tǒng)135供應(yīng)在共享的存儲器陣列250中存 儲的數(shù)據(jù)。即,第二線程245 —般可被配置為用作M0DBUS從設(shè)備,按需提供M0DBUS地址 值。例如,在一個實施例中,第二線程245等待經(jīng)由以太網(wǎng)端口 210上建立的TCP連接、來 自SCADA系統(tǒng)135的命令請求,并用來自共享的存儲器陣列250的所請求值進行響應(yīng)。與 第一線程240類似,第二線程245 —般也可以在無限循環(huán)中運行,始終等待來自SCADA系統(tǒng) 135的新數(shù)據(jù)請求,直到接收到指引PLC協(xié)議轉(zhuǎn)換器應(yīng)用235關(guān)閉的中斷。
圖3是進一步示出根據(jù)本發(fā)明一個實施例由PLC控制轉(zhuǎn)換器應(yīng)用235使用的共享 的存儲器陣列250的框圖。如圖所示,共享的存儲器陣列250包括數(shù)字?jǐn)?shù)據(jù)值的陣列槽的 集合335、離散數(shù)據(jù)值的陣列槽的集合340、和診斷值的陣列槽的集合345。此外,第一線程 240(標(biāo)記為NITP線程)的操作通常表現(xiàn)為圖3中的共享的存儲器陣列250的左側(cè),第二線 程245(標(biāo)記為MODBUS線程)的操作通常表現(xiàn)為圖3中的共享的存儲器陣列250的右側(cè)。 在一個實施例中,使用數(shù)字?jǐn)?shù)據(jù)值335和離散數(shù)據(jù)值340之一的每個槽來存儲從PLC設(shè)備 115取出的數(shù)據(jù)值。還可將數(shù)字?jǐn)?shù)據(jù)值335和離散數(shù)據(jù)值340之一的每個槽與MODBUS地址 相關(guān)聯(lián),從而允許第二線程245響應(yīng)于從SCADA系統(tǒng)135接收的對MODBUS地址值的請求。
在一個實施例中,每個數(shù)字?jǐn)?shù)據(jù)值的陣列槽提供4字節(jié)存儲空間來存儲浮點數(shù)。 數(shù)字?jǐn)?shù)據(jù)值335典型地存儲可沿著連續(xù)范圍下降的工業(yè)設(shè)施105的某個方面的度量,例如 溫度、壓力、流速等。離散數(shù)據(jù)值340典型地存儲可取得整數(shù)或布爾值的工業(yè)設(shè)施105的某 個方面的度量,例如整數(shù)計數(shù)或作為"打開"或"關(guān)閉"的開關(guān)的位置。 圖示地,圖3示出從PLC設(shè)備115提出的"LPV1"地址、"V101"地址、和"LSP3 "地 址,并將他們存儲在共享的存儲器陣列250中的數(shù)字?jǐn)?shù)據(jù)值335的前三個陣列槽中。已知 地,對于西門子505系列PLC設(shè)備,"LPV1"、"V101"和"LSP3"地址分別對應(yīng)于控制循環(huán)的 處理變量1、一般存儲器變量101、和控制循環(huán)的設(shè)置點3。此外,在這個實例中,陣列槽映 射到對于MODBUS地址的"40, 000"序列的前三個值。還已知地,將M0DBUS地址細(xì)分為塊, 其中"40, 000"序列被普遍理解為包含數(shù)字?jǐn)?shù)據(jù)的"保持寄存器"。在一個實施例中,SCADA 系統(tǒng)130可通過在以太網(wǎng)連接210上向第二線程245發(fā)送消息來請求任意數(shù)字?jǐn)?shù)據(jù)值335。 響應(yīng)地,第二線程245從共享的存儲器陣列250取出所請求的值,并在以太網(wǎng)連接210上將 其發(fā)送至SCADA系統(tǒng)130,如箭頭320所示。 類似地,圖3示出從PLC設(shè)備115提出的"X1"地址和"C3",并將其存儲在共享的 存儲器陣列250中的離散數(shù)據(jù)值340的前三個陣列槽中。已知地,對于西門子505系列PLC 設(shè)備,"X1"和"C3"PLC地址分別對應(yīng)于開關(guān)狀態(tài)1和輸出線圈3。此外,在這個實例中,陣 列槽映射到對于M0DBUS地址的"10, 000"序列的前三個值。類似于數(shù)字?jǐn)?shù)據(jù)值335, SCADA 系統(tǒng)130也可通過在以太網(wǎng)連接210上向第二線程245發(fā)送消息來請求任意離散數(shù)據(jù)值 340。響應(yīng)地,第二線程245從共享的存儲器陣列250取出所請求的值,并在以太網(wǎng)連接210 上將其發(fā)送至SCADA系統(tǒng)130,如箭頭325所示。 在一個實施例中,除了從PLC設(shè)備115提出數(shù)據(jù)值之外,第一線程240還可被配置為向共享的存儲器陣列250中保留的槽寫入用于診斷值345的信息。例如,圖3示出為了診 斷信息(例如日期、時間、一般狀態(tài)等)而保留的陣列槽。診斷值345 —般地可用于記錄與 協(xié)議轉(zhuǎn)換器應(yīng)用235和/或PLC轉(zhuǎn)換器系統(tǒng)120的運行狀態(tài)相關(guān)的信息。如PLC地址值, SCADA系統(tǒng)130可向第二線程245發(fā)送對于診斷值345的請求。在響應(yīng)中,第二線程245可 從共享的存儲器陣列250取出所請求的值,并在以太網(wǎng)連接210上將其發(fā)送至SCADA系統(tǒng) 130,如箭頭330所示。 圖4示出根據(jù)本發(fā)明一個實施例的PLC協(xié)議轉(zhuǎn)換器應(yīng)用230使用期望的通信協(xié)議 與PLC設(shè)備115通信的方法400。在一個實施例中,可使用PLC協(xié)議轉(zhuǎn)換器應(yīng)用230來執(zhí)行 方法400用于與PLC設(shè)備115 (例如西門子公司的505系列PLC設(shè)備)和SCADA系統(tǒng)130通 信,如上所述。然而,本領(lǐng)域普通技術(shù)人員將認(rèn)識到,在這里可為了圖示的目的使用特定設(shè) 備、軟件和產(chǎn)品的實例,在不脫離本發(fā)明的范圍的情況下,可以使用其他類型的這些項目。
如圖所示,方法400開始于步驟405,其中PLC協(xié)議轉(zhuǎn)換器應(yīng)用230開始執(zhí)行。在 一個實施例中,該應(yīng)用可讀取配置文件220并創(chuàng)建共享的存儲器陣列250。初始地,陣列250 包括用于數(shù)字?jǐn)?shù)據(jù)值335、離散數(shù)據(jù)值340和診斷值345的槽,如配置文件220所指定的,而 在各自的陣列元中沒有任何實際數(shù)據(jù)。在步驟410,PLC協(xié)議轉(zhuǎn)換器應(yīng)用230可初始化第一 線程240和第二線程245。參照步驟410-435描述第一線程240的操作,參照步驟445-465 描述第二線程245的操作。 在步驟415,第一線程240建立與PLC設(shè)備115的連接。例如,如上所述,可與西門 子公司505系列PLC設(shè)備建立RS-232串聯(lián)。步驟420-435代表PLC協(xié)議轉(zhuǎn)換器應(yīng)用230 繼續(xù)執(zhí)行時由第一線程240執(zhí)行的循環(huán)。在步驟420,第一線程240識別要從PLC設(shè)備115 請求的下一數(shù)據(jù)值。例如,第一線程240可在共享的存儲器陣列250中保持代表最后更新 值的索引。在這種情況下,第一線程240在每次通過步驟420-435的循環(huán)時將索引遞增至 下一值。在步驟425,第一線程240可向PLC設(shè)備115發(fā)送消息,以請求在步驟420識別的 PLC地址。例如,如上所述,可向西門子公司505系列PLC設(shè)備發(fā)送使用NITP協(xié)議構(gòu)成的消 息。 一旦接收到響應(yīng),則在共享存儲器陣列250的適當(dāng)位置中存儲從PLC設(shè)備115發(fā)送的 值(步驟430)。在步驟435,第一線程240可確定是否(例如經(jīng)由中斷)接收到關(guān)閉命令。 然而,只要PLC協(xié)議轉(zhuǎn)換器應(yīng)用230繼續(xù)執(zhí)行,則第一線程240繼續(xù)逐個地讀取期望的PLC 地址。 在一個實施例中,第二線程245響應(yīng)于來自SCADA系統(tǒng)130的對于共享的存儲器 陣列250中的值的請求,同時由第一線程240更新這樣的值。在步驟445,第二線程445建 立與SCADA系統(tǒng)130的連接。例如,如上所述,PLC轉(zhuǎn)換器應(yīng)用230可被配置為建立與SCADA 系統(tǒng)120的TCP連接,從而允許第二線程245用作MODBUS從設(shè)備。步驟450-460代表PLC 協(xié)議轉(zhuǎn)換器應(yīng)用230繼續(xù)執(zhí)行時由第二線程245執(zhí)行的循環(huán)。在步驟450,第二線程240接 收對于共享的存儲器陣列250中一段范圍的值的請求。在一個實施例中,該請求可被格式 化為對于一段范圍的MODBUS地址的MODBUS請求。在步驟445,第二線程245從共享的存 儲器陣列250取出所請求的值,并且在步驟450,以適當(dāng)格式(例如MODBUS格式)向SCADA 系統(tǒng)130發(fā)送所請求的數(shù)據(jù)。在步驟465,第二線程240可確定是否(例如經(jīng)由中斷)接收 了關(guān)閉命令。然而,只要PLC協(xié)議轉(zhuǎn)換器應(yīng)用230繼續(xù)執(zhí)行,則第二線程可等待,并響應(yīng)對 于共享的存儲器陣列250中的信息的請求。
有利地,本發(fā)明實施例提供了一種PLC協(xié)議轉(zhuǎn)換器系統(tǒng),其允許SCADA系統(tǒng)使用 期望的通信協(xié)議有效地與PLC設(shè)備通信,特別在PLC設(shè)備沒有"說出"期望的通信協(xié)議的情 況下。如上所述,本發(fā)明實施例可用于提供對于PLC數(shù)據(jù)庫中任意數(shù)據(jù)類型(例如數(shù)字、離 散等)的只讀訪問,并使用SCADA系統(tǒng)理解的協(xié)議提供數(shù)據(jù)。此外,本發(fā)明實施例不需要在 PLC設(shè)備自身中的任何配置,或任意處理器重啟/關(guān)閉來作用;可與PLC設(shè)備連接/斷開連 接,而不對PLC設(shè)備存在任何影響;以及可(例如經(jīng)由TCP連接)連接至SCADA系統(tǒng),以允 許遠(yuǎn)程配置、管理和使用。 已經(jīng)描述了用于實踐本發(fā)明的優(yōu)選方法和裝置。對于本領(lǐng)域普通技術(shù)人員來說, 可容易理解并且清楚地是,在不脫離本發(fā)明的精神和范圍的情況下,可以對上述實施例進
行許多改變和修改。以上內(nèi)容僅是示例性的,并且在不脫離由隨后權(quán)利要求限定的本發(fā)明 的真實范圍的情況下可采用集成的方法和裝置的其他實施例。
1權(quán)利要求
一種從可編程邏輯控制器(PLC)設(shè)備暴露數(shù)據(jù)的方法,包括訪問用于識別要暴露的多個PLC地址的配置文件;初始化共享的存儲器陣列,其中所述共享的存儲器陣列包括多個單元,其每個用于存儲從所述PLC設(shè)備獲得的數(shù)據(jù);調(diào)用第一線程,其中所述第一線程被配置為重復(fù)地發(fā)送對于所識別的PLC地址之一的請求,其中所述請求根據(jù)第一通信協(xié)議來配置;以及響應(yīng)于在所述共享的存儲器陣列的單元之一中的請求,存儲由所述PLC設(shè)備返回的數(shù)據(jù)值;以及調(diào)用第二線程,其中所述第二線程被配置為接收根據(jù)第二通信協(xié)議傳送的對于在所述共享的存儲器陣列中存儲的數(shù)據(jù)值中的一個或多個的請求;取出所請求的一個或多個數(shù)據(jù)值;以及以與所述第二通信協(xié)議一致的格式返回所請求的數(shù)據(jù)值。
2. 如權(quán)利要求1所述的方法,其中對于一個或多個數(shù)據(jù)值的請求通過監(jiān)督控制和數(shù)據(jù) 獲取(SCADA)系統(tǒng)發(fā)送,并返回至該SCADA系統(tǒng)。
3. 如權(quán)利要求l所述的方法,其中所述第一協(xié)議包括非智能終端協(xié)議(NITP)。
4. 如權(quán)利要求1所述的方法,其中所述第一協(xié)議用于在所述PLC設(shè)備和所述第一線程 之間建立的串行通信數(shù)據(jù)鏈路上通信。
5. 如權(quán)利要求1所述的方法,其中所述第二協(xié)議包括TCP/MODBUS協(xié)議。
6. 如權(quán)利要求1所述的方法,其中所述共享的存儲器陣列包括至少一個數(shù)字?jǐn)?shù)據(jù)值。
7. 如權(quán)利要求1所述的方法,其中所述共享的存儲器陣列包括至少一個離散數(shù)據(jù)值。
8. 如權(quán)利要求1所述的方法,其中所述共享的存儲器陣列包括至少一個診斷值。
9. 一種計算機可讀存儲介質(zhì),其包括被配置為執(zhí)行一種從可編程邏輯控制器(PLC)設(shè) 備暴露數(shù)據(jù)的方法的程序,所述程序包括用于執(zhí)行操作的指令,所述操作包括訪問用于識別要暴露的多個PLC地址的配置文件;初始化共享的存儲器陣列,其中所述共享的存儲器陣列包括多個單元,其每個用于存 儲從所述PLC設(shè)備獲得的數(shù)據(jù);調(diào)用第一線程,其中所述第一線程被配置為重復(fù)地發(fā)送對于所識別的PLC地址之一的請求,其中所述請求根據(jù)第一通信協(xié)議來配置;以及響應(yīng)于在所述共享的存儲器陣列的單元之一中的請求,存儲由所述PLC設(shè)備返回的數(shù) 據(jù)值;以及調(diào)用第二線程,其中所述第二線程被配置為接收根據(jù)第二通信協(xié)議傳送的對于在所述共享的存儲器陣列中存儲的數(shù)據(jù)值中的一個或多個的請求;取出所請求的一個或多個數(shù)據(jù)值;以及 以與所述第二通信協(xié)議一致的格式返回所請求的數(shù)據(jù)值。
10. 如權(quán)利要求9所述的計算機可讀存儲介質(zhì),其中對于一個或多個數(shù)據(jù)值的請求通過監(jiān)督控制和數(shù)據(jù)獲取(SCADA)系統(tǒng)發(fā)送,并返回至該SCADA系統(tǒng)。
11. 如權(quán)利要求9所述的計算機可讀存儲介質(zhì),其中所述第一協(xié)議包括非智能終端協(xié) 議(NITP)。
12. 如權(quán)利要求9所述的計算機可讀存儲介質(zhì),其中所述第一協(xié)議用于在所述PLC設(shè)備 和所述第一線程之間建立的串行通信數(shù)據(jù)鏈路上通信。
13. 如權(quán)利要求9所述的計算機可讀存儲介質(zhì),其中所述第二協(xié)議包括TCP/MODBUS協(xié)議。
14. 如權(quán)利要求9所述的計算機可讀存儲介質(zhì),其中所述共享的存儲器陣列包括至少 一個數(shù)字?jǐn)?shù)據(jù)值。
15. 如權(quán)利要求9所述的計算機可讀存儲介質(zhì),其中所述共享的存儲器陣列包括至少 一個離散數(shù)據(jù)值。
16. 如權(quán)利要求9所述的計算機可讀存儲介質(zhì),其中所述共享的存儲器陣列包括至少 一個診斷值。
17. —種系統(tǒng),包括 處理器;以及存儲器,其包含被配置為執(zhí)行從可編程邏輯控制器(PLC)設(shè)備獲得數(shù)據(jù)值的操作的程 序,所述操作包括解析用于識別要暴露的多個PLC地址的配置文件;初始化共享的存儲器陣列,其中所述共享的存儲器陣列包括多個單元,其每個用于存 儲從所述PLC設(shè)備獲得的數(shù)據(jù);調(diào)用第一線程,其中所述第一線程被配置為重復(fù)地發(fā)送對于PLC地址之一的請求,其中所述請求根據(jù)第一通信協(xié)議來配置;以及響應(yīng)于在所述共享的存儲器陣列的單元之一中的請求,存儲由所述PLC設(shè)備返回的數(shù) 據(jù)值;以及調(diào)用第二線程,其中所述第二線程被配置為接收根據(jù)第二通信協(xié)議傳送的對于在所述共享的存儲器陣列中存儲的數(shù)據(jù)值中的一個或多個的請求;取出所請求的一個或多個數(shù)據(jù)值;以及 以與所述第二通信協(xié)議一致的格式返回所請求的數(shù)據(jù)值。
18. 如權(quán)利要求17所述的系統(tǒng),其中對于一個或多個數(shù)據(jù)值的請求通過監(jiān)督控制和數(shù) 據(jù)獲取(SCADA)系統(tǒng)發(fā)送,并返回至該SCADA系統(tǒng)。
19. 如權(quán)利要求17所述的系統(tǒng),其中所述第一協(xié)議包括非智能終端協(xié)議(NITP)。
20. 如權(quán)利要求17所述的系統(tǒng),其中所述第一協(xié)議用于在所述PLC設(shè)備和所述第一線 程之間建立的串行通信數(shù)據(jù)鏈路上通信。
21. 如權(quán)利要求17所述的系統(tǒng),其中所述第二協(xié)議包括TCP/MODBUS協(xié)議。
22. 如權(quán)利要求17所述的系統(tǒng),其中所述共享的存儲器陣列包括至少一個數(shù)字?jǐn)?shù)據(jù)值。
23. 如權(quán)利要求17所述的系統(tǒng),其中所述共享的存儲器陣列包括至少一個離散數(shù)據(jù)值。
24.如權(quán)利要求17所述的系統(tǒng),其中所述共享的存儲器陣列包括至少一個診斷值c
全文摘要
公開了一種可編程邏輯控制器(PLC)協(xié)議轉(zhuǎn)換器,其允許監(jiān)督控制和數(shù)據(jù)獲取(SCADA)系統(tǒng)使用期望的通信協(xié)議與PLC設(shè)備有效地通信,特別在PLC設(shè)備沒有“說出”期望的通信協(xié)議的情況下。第一線程可被配置為使用PLC設(shè)備知曉的通信協(xié)議逐個地連續(xù)讀取PLC地址。第一線程可將數(shù)據(jù)值存儲在程序存儲器中的共享數(shù)據(jù)陣列中。因此,第一線程從PLC設(shè)備暴露在配置文件中指定的數(shù)據(jù)。同時,第二線程可被配置為根據(jù)第二通信協(xié)議例如向SCADA系統(tǒng)供應(yīng)在共享數(shù)據(jù)陣列中的數(shù)據(jù)。
文檔編號G05B19/05GK101765817SQ200880100586
公開日2010年6月30日 申請日期2008年7月26日 優(yōu)先權(quán)日2007年7月26日
發(fā)明者H·J·拉巴特-托基, J·卡普曼, T·R·卡明斯 申請人:喬治洛德方法研究和開發(fā)液化空氣有限公司