Modbus Utility

Modbus Utility 文件
1.0.3 版 [5月,05,2005]

何謂 Modbus ?

何謂 SCADA ?

快速設定

請參考 快速設定 ，幫助您快速地設定好 I-7188E -MTCP 的各項設定，讓它可以很快地開始工作。

軟體連結到 Modbus/TCP 控制器

雖然大部分的 SCADA 和 HMI 軟體都有提供連結到 Modbus/TCP 設備的說明文件，但是我們還是把其中幾個軟體的操作步驟的細節和畫面記錄下來，讓您一目了然。

軟體名稱 | 文件
Citect | Linking\Citect.pdf
iFix | Linking\iFix.pdf
Indusoft | Linking\Indusoft.pdf
SteepleChase VLC | Linking\VLC.pdf

I-7188E -MTCP 的特色

I-7188E -MTCP 的預設程式，除了提供通訊協定轉換的功能，還有其他的功能。除了一般的 Modbus/RTU 設備之外，也可以連接其他非 Modbus/RTU 的串列設備。請參考 預設 Modbus 程式的特色 中的詳細說明。

設計特殊的 I-7188E -MTCP 程式

I-7188E -MTCP 出貨時，記憶體裡面已經安裝一個預設的 Modbus 程式。可以使 I-7188E 成為一個 Modbus/TCP 到 Modbus/RTU 的通訊轉換器。

如果，預設的 Modbus 程式無法完全符合您的需求，我們提供 Modbus 的 軟體開發工具 (SDK) ，讓您可以自行修改程式，增加額外、特殊的功能，使 I-7188E -MTCP 變成一個不需要靠 PC 也可以獨立工作的 Modbus/TCP 控制器。

欲修改 Modbus 程式增加額外、特殊的功能，請參考光碟片裡的範例程式
CD:\Napdos\Modbus\Demo\7188e\Bc\
 或者從我們的 FTP 站下載最新的資料
ftp://ftp.icpdas.com/pub/cd/8000cd/napdos/modbus/

 關於更多開發 I-7188E 程式的技巧，請參考下面的文件
CD:\Napdos\7188e\document\7188Ess.pdf

典型的應用

I-7188E -MTCP 的功能很多，可以區分成幾個比較典型的應用，請參考這些應用類型來調整 I-7188E -MTCP 的設定。


快速設定

剛開始拿到 I-7188E 後，必須將所有的設定調整成符合您的使用。這個設定的動作只要做一次即可。

Step 1. 設定 I-7188E 的 網路設定值 (IP, Mask, Gateway) 。

您必須先安裝 PCDiag，才能使用 Configure Wizard
( CDROM:\Napdos\7188e\TCP\PCDiag\Setup\Setup.exe )

Step 2. 透過網路連結到 I-7188E

將預設的 IP 值更改成在 Step 1 中設定給 I-7188E 的 IP 值，按 [Connect] 連結上 I-7188E 之後，Modbus Utility 就可以讀出 I-7188E 的重要資訊 (例如：系統設定，串列埠設定…等等 )。

Step 3. 調整系統設定

____

Modbus 程式 (MBTCP_7E.exe)讓 I-7188E 變成一個 Modbus/TCP 對多個 Modbus/RTU 的轉換器。Modbus 程式必需要知道，要將 Modbus/TCP 的命令轉到哪裡 ( I-7188E 的內部記憶體或是串列埠 )。然而，I-7188E 的硬體並沒有任何設計 (例如：Dip-switch 或是jump) 用來設定 Modbus 的站號 (或稱之為 NetID)，所有的設定必須透過 Modbus Utility 來處理。
系統設定包括了：

Net ID ( 預設 = 1 ) :
當 Modbus/TCP 命令 (由 PC 的 SCADA 軟体或是 HMI) 的目的地的站號和 Net ID 相同，此命令會被送到 Modbus 核心，然後 Modbus 核心會將內部記憶體的資料回應給 Modbus/TCP client ( PC 的 SCADA 軟体或是 HMI )。

預設的 Modbus 程式只提供以下資訊：

AI[0]=0x7188
AO[0]=0x1234
DI[1]=1
DO[0]=1

其他內部記憶體的值都是零

當您使用 Modbus SDK 來發展特別版 Modbus 程式時，您可將許多資料放到 I-7188E 使用者定義的內部記憶體。然後， PC 上的 SCADA 軟体或是 HMI 就可以透過 Modbus/TCP 的通訊協定輕易地存取到這些資料。

Stations per COM port ( 預設 = 10 ) :
這個值是用來決定 I-7188E 的每一個串列埠可以管理幾個 Modbus/RTU 的設備。並且，這個值也可以決定Modbus/TCP 的命令會被轉到 I-7188E 的哪一個串列埠。

按下 "Set" 鈕之後，Utility 就會將對應的關係顯示出來。

Step 4. 調整串列埠 (COM port) 設定

Enable Mode ( 預設 =Modbus/RTU ):
I-7188E 的串列埠可以被規劃成為下以這幾種功能

  1. VxComm (虛擬串列埠):
    啟動 VxComm 的功能。遠端的應用程式可透過虛擬的串列埠 (需安裝 VxComm 驅動程式)，或是直接連接 TCP/IP port 10000 + n 來存取 7188E 上的串列埠。VxComm 模式下，此串列埠可以連接所有類型的串列設備。
  2. Modbus/RTU Gateway:
    啟動 Modbus/TCP 到 Modbus/RTU 的轉換功能。Modbus/RTU 模式下，此串列埠只能連結到 Modbus/RTU 的設備。
  3. Programming:
    取消串列埠的所有通訊功能。使用者必使用 C 語言在 Xserver 的架構下開發 7188E 的程式，來控制串列設備。Programming 模式下，此串列埠可以連接所有類型的串列設備。
  4. UpLink:
    將此串列埠設成一個 Modbus/RTU slave

  5. Debug port:
    當在和 Modbus client 或是 master 通訊時，Modbus 核心會列印出一些訊息。這些訊息包括了
    (0) 接收到的 Modbus 命令
    回傳結果給 Modbus clients 或是 masters
    (1)     將 Modbus 轉發給某個串列埠
    (2) 送出 Modbus 命令給某個串列埠
    (3) 檢查某個串列埠是否有 Modbus 回應
    (4) 將 Modbus 回應傳回給 Modbus client 或是 masters

Modbus/RTU 的資料格式
Modbus/RTU 有數種資料格式，你必須更改這個設定，來配合連在此串列埠上的 Modbus/RTU 設備。

8 data bits, none parity, 1 stop bits
8 data bits, none parity, 2 stop bits
8 data bits, odd parity, 1 stop bits
8 data bits, even parity, 1 stop bits (預設值)

注意：當 I-7188E 收到一個 Modbus/TCP 命令時，它首先決定要將這個命令轉送到哪一個串列埠。但是此一串列埠的 Enable mode 必須是 Modbus/RTU，否則，這個命令將會被當作是無效的，然後被丟棄。

Timeout ( 預設 =200 ms ):
當從串列埠將資料送出去後，經過一段時間 (Timeout 的設定值)，而還沒有收到完整的回應，則放棄接收回應。

Step 5. 將所有設定儲存起來

按完工具列上的 [Save] 之後，Modbus Utility 會在 PC 上產生一個記錄檔 (預設檔名是 Modbus_7e.ini)。沒連接上 I-7188E 時，可以執行 Modbus Utility 用離線 (off-line) 的方式，將記錄檔叫出來，再次檢閱特定控制器的設定值。若沒有將 I-7188E 的設定值儲存起來，還是可以透過網路，連接上 I-7188E ，將其設定值讀出來。

到此為止，I-7188E 的所有設定已經完成，它已經可以開始執行 Modbus/TCP 到 Modbus/RTU 的轉換工作了。


預設 Modbus 程式的特色

當您購買一顆 I-7188E -MTCP 控制器時，它已經安裝了一個預設的Modbus 程式在它的 Flash 記憶體中了。這支程式具備下面的特色：

  • 具 單一Modbus/TCP 對 多Modbus/RTU 的轉換功能

    • I-7188E -MTCP 是一個 Modbus/TCP 的轉接器。它可以很輕易地將 Modbus/RTU 的設備升級到具備有網路通訊功能。

  • 控制器上的每一個串列埠都支援 VxComm 技術

    假如串列設備沒有支援 Modbus/RTU，您還是可以存取這些設備。但是必須在電腦上安裝 VxComm 的驅動程式，並且分配一個串列埠號碼給遠端 i-7188E -MTCP 的串列埠。在那之後，程式就可以透過標準的 RS-232 函式經由 Ethernet 存取遠端的串列埠了。

  • 允許多個主控端 ( 或客戶端 ) 同時間存取

    • 不同的 I-7188E -MTCP 控制器支援不同數目的主控端。請參考網頁上 FAQ 的詳細說明。

    http://www.icpdas.com/faq/7188e/ech003.htm

  • 程式可以修改

    我們提供 Modbus 軟體開發工具 給客戶自行發展客制化的 Modbus 程式。

以下為預設的 Modbus 程式的架構圖


Modbus 軟體開發工具 ( 使用 C 語言 )

假如預設的軟體並不是完全符合您的需求，您可以使用 Modbus 軟體發展工具 (SDK) 來修改預設的軟體，增加額外、特殊的功能。Modbus 軟體發展工具具有下列特色：

  • 支援額外的使用者自訂通訊協定(TCP/IP)

    • Modbus/TCP 支援 2 種基本的資料格式 (bit 和 2-byte 的整數型態)。這意味著假如主控端 ( 或稱為客戶端 ) 不支援 Modbus/TCP 或者您需要其他格式的資料 ( 例如：字串或是浮點數 )， I-7188E ( 執行預設程式 ) 將無法和主控端通訊。使用這項功能，您可以發展自已的特殊通訊協定來傳送任意的資料了。

  • 以Register 為基礎的程式開發方式 (容易使用)

    • Modbus 的函式庫提供 4 個內部的 register 表 (iMemory_AI, iMemory_AO, iMemory_DI, iMemory_DO)，您可以利用它們來儲存特定的資料。當 Modbus/TCP 主控端向 I-7188E -MTCP 詢問資料時，Modbus 的主程式會把這 4 個表裡的資料回應給主控端。

  • 提供使用者定義的 registers

    • 這 4 個內部 register 的表是完全開放給使用者使用的。您必自行分配、使用。

  • 可連結到 Modbus/RTU 設備

    使用 ModbusMaster2Slave 這個函數 (宣告在 MBTCP_7E.h), Modbus/RTU 設備可以很容易地整合到 I-7188E -MTCP 內部的記憶體。I-7188E -MTCP 輪流詢問 Modbus/RTU 設備的資料，將它們擺到內部的 registers 。這樣一來，主控端只要詢問 I-7188E -MTCP 就可以得全部的資料。主控端的負擔就可以大幅地降低。

  • 可連結到非 Modbus/RTU 設備

    • 有些串列設備並沒有支援 Modbus/RTU 。我們另外提供了函數讓 I-7188E -MTCP 可以連結到這些串列設備，讓您可以將資料擺到它內部的 Registers 。這樣一來，非 Modbus/RTU 的串列設備也可以支援 Modbus/TCP 了。

  • 支援 X boards

    • 您可以挑一塊合適的 Xboard 加到 I-7188EX 上，變成 on board 的 I/O 接點。

  • 和 Xserver SDK 相容

    Modbus SDK 是架構在 Xserver SDK 之上的設計。欲學習更多的程式開發技巧，也可以參考 Xserver 的範例程式。關於 Xserver 範例程式的資料請參考

    CD:\Napdso\7188e\TCP\Xserver\Xserver.htm

以下為 Modbus 軟體發展工具的架構圖


典型的應用

基本應用 1: 通訊協定轉換器

當 I-7188E -MTCP 執行預設的程式後，就會變成單一Modbus/TCP 對 多個Modbus/RTU 的轉換器。您可以很簡單地使用 Modbus Utility 將各項設定規劃好。然後再將 SCADA、HMI 和 I-7188E -MTCP 之間的連線設定好即可。

基本應用 2: 通訊協定轉換器加上 VxComm 技術

I-7188E -MTCP 也可以連接不支援 Modbus/RTU 的串列設備。欲使用這個功能，您必需在 PC 上安裝 VxComm 的驅動程式。在安裝完驅動程後，您就可以使用標準的串列程式存取遠端的串列埠了。

進階應用 1: Modbus/TCP 控制器

使用 Modbus SDK (軟體開發工具)，使用者可以發展自己特殊版本的 Modbus 軟體，將額外、特殊的功能、串列設備還有 Xboard 整合到 Modbus/TCP 的核心。這樣 I-7188E 就可以成為一個功能強大的控制器。

進階應用 2: Modbus/TCP 控制器加上 VxComm 技術

當 I-7188E -MTCP 連結到和進階應用 1 中相同的硬體設備時，假如連接在某些串列埠上的設備並沒有被整合到您的特定版本的 Modbus 程式中，您仍然可以使用標準的串列程式存取遠端的串列埠，只是您必須在主控電腦上安裝 VxComm 驅動程式。


快速設定

文件修訂歷史

1.0.0 版 [Mar,14,2003] 初版

1.0.1 版 [Oct,11,2003]
更改 "快速設定" 中，"Station/COM port" 的敘述變成 "Stations per COM port" 。

1.0.2 版 [Nov,25,2003]
更改 "快速設定" 中 "Enable Mode" 的說明。
更改 "快速設定" 中 "Timeout" 的預設值。

1.0.3 版 [May,05,2005]
COM port 為 Modbus/RTU gateway 的模式下，Modbus/RTU 站號和
COM port 的對應關係有所改變，所以更改 "快速設定" 中 "Station Per COM port" 的說明。


What is Modbus ?

何謂 Modbus ?

何謂 Modbus 通訊協定?

Modbus 是由 MODICON 公司在 1979 發展出來的一套通訊協定。它具有標準化、採開放式架構的特性，而且廣泛地被工業自動化產所使用的通訊協定。透過 Modbus，SCADA 和 HMI 軟體可以很容易地將許多串列設備整合在一起。

何謂 Modbus/TCP 通訊協定?

Modbus/TCP 是 Modbus 的一種變形。它在 1999 年被發展出來，讓 SCADA/HMI 也可以透過 Modbus/TCP 存取網路上的設備。

哪些軟體支援 Modbus 和 Modbus/TCP ?

大部分的 SCADA ( Supervisor Control And Data Acuisition ) 軟體和 HMI 都支援 Modbus 通訊協定，例如：

Citect, ICONICS, iFIX, InduSoft, Intouch, Entivity Studio, Entivity Live, Entivity VLC, Trace Mode, Wizcon, Wonderware…等等。

使用 Modbus 和 Modbus/TCP 有什麼好處?

1. 完全開放，不需授權費
2. 廣泛地被 SCADA 和 HMI 軟體支援
3. 容易使用
4. 不同的設備容易整合在一起
5. 發展系統的時程縮短，成本降低
6. 豐富的資源

Modbus 資源

http://www.modicon.com
Modbus 原創公司 MODICON 的網站

http://www.modbus.org
Modbus 社群網站

http://www.winsite.com/bin/Info?3088
免費的 Modbus (RTU/ASCII) 或是 Modbus/TCP ActiveX 元件

http://www.pmcrae.freeserve.co.uk/readregu.html
Linux 上 Modbus/RTU 通訊的範例程式碼 (C )


What is Modbus ?

何謂 SCADA ?

何謂 SCADA ?

凡是具有系統監控和資料擷取功能的軟體，都可以稱之為 SCADA (Supervisor Control And Data Acqusition) 軟體。它是架構在 PC 之上的生產自動化及控制系統。

此類型軟體的應用範圍很廣，舉凡電力系統、水利系統、石油、化工、汽車業都是其應用領域。不同領域應用，所需的功能也不儘相同，但是它們都具有以下的基本特色：

  • 圖形操作介面
  • 系統狀態動態模擬
  • 即時和歷史資
  • 料趨勢曲線顯示
  • 警報處理系統
  • 資料擷取與記錄
  • 資料分析
  • 報表輸出

SCADA 連結硬體設備

SCADA 軟體和硬體設備連結的方式，大約可歸納成三類：

  • 標準的通訊協定

    工業界常用的標準通訊協定有

    ARCNET, CAN Bus, Device Net, Lon Works, Modbus, Profibus

    SCADA 軟體和硬體設備，只要使用相同的通訊協定，兩者就可以直接溝通，不需再安裝其他額外的驅動程式。

  • 標準的資料交換介面

    工業界比較普遍的資料交換介面有

    DDE (Dynamic Data Exchange)

    OPC (OLE for Process Control)

    使用標準的資料交換介面，SCADA 軟體以間接的方式，透過DDE 和 OPC 內部的資料交換中心 (Data exchange center)，和硬體設備溝通。這種方式的優點在於：不管硬體設備是否使用使用標準的通訊協定，硬體製造商只需提供一套 DDE 或 OPC 的驅動程式，即可支援大部分的 SCADA 軟體。

  • 原生驅動程式 (Native driver)

    • 原生驅動程式是指針對某一特定硬體、目標設計的驅動程式。這種方式，優點是執行效能比使用標準的資料交換介面好，但缺點是相容性並不好，硬體製造商必須針對特定的 SCADA 軟體提供特定的驅動程式。

以上三種方式，只要使用其中任意一種，即可將 SCADA 軟體和硬體設備結合起來。其通訊的架構如下圖：

知名的 SCADA 軟體

Citect, ICONICS, iFix, InduSoft, Intouch, Entivity Studio, Entivity Live, Entivity VLC, Trace Mode, Wizcon, Wonderware, ...等等。

ICPDAS 提供的資源

  • 標準的通訊協定

Modbus/RTU 和 Modbus/TCP

ISaGRAF 嵌入式控制器

I-8417, I-8817, I-8437, I-8837, I-7188XG, I-7188EG

Modbus/TCP 嵌入式控制器

I-8431 -MTCP, I-8831 -MTCP
I-7188E -MTCP

  • 標準的資料交換介面 (免費)

    • OPC Server (NAPOPC DA Server)

    DDE Server (DCON_DDE)

  • 原生驅動程式 (Native driver) (免費)

    DLL (DCON_DLL)

    ActiveX 元件 (DCON_ActiveX)

    Labview 驅動程式 (DCON_Labview)

    InduSoft 驅動程式 (DCON_InduSoft)