目錄 目錄 關於手冊 NModbus API 函數 Master API CreateRtu CreateIp CreateAscii WriteSin

Similar documents
目錄 目錄 關於手冊 NModbus Master API CreateRtu CreateAscii CreateIp(TcpClient) CreateIp(UdpClient)...

/ / (FC 3)...

<B0B8C0FDCAD6B2E15FD3A1CBA2B0E6>

投影片 1

untitled

untitled

标题

T

Microsoft Word - step3使用说明新.doc

Microsoft Word - DCS系统的实践应用与工作经验

milog3使用说明书.docx

untitled

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

untitled

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2

C-062.docx

(HMI) IO A

38 诚 信 始 于 入 口 从 入 口 处 着 手 打 好 律 师 队 伍 建 设 的 诚 信 基 础 / 刘 彦 平 4 0 我 国 证 券 公 司 治 理 缺 陷 的 根 源 及 其 出 路 / 黄 运 成 曹 里 加 李 畅 4 3 中 止, 因 为 什 么? 被 告 人 胡 鹏 等 五 人

1 IT IT IT IT Virtual Machine, VM VM VM VM Operating Systems, OS IT

!! :!!??!!?!??!!!... :... :'?'?! :' ' :'?' :'?' :'!' : :? Page 2

秘密大乘佛法(下)

國立臺東高級中學102學年度第一學期第二次期中考高一國文科試題

Page 2 of 12

<D2B0D0C4D3C5D1C52DC8CED6BEC7BF202D20BCC7CAC2B1BE>

Microsoft Word - Sunday

鎶ョ焊0

書本介紹


Microsoft Word - 01.DOC

f2.eps

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

概述

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

1. 什 么 是 信 息 公 开? 信 息 公 开 基 本 原 则 是 什 么? 答 : 信 息 公 开 是 指 除 特 定 的 法 定 不 予 公 开 的 信 息 之 外, 国 家 机 关, 主 要 是 行 政 机 关, 应 依 据 法 律 的 规 定, 积 极 向 社 会 发 布 公 共 信 息

Oracle高级复制配置手册_业务广告_.doc


第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

提问袁小兵:

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

基于ECO的UML模型驱动的数据库应用开发1.doc

PowerPoint 簡報

目 次 寫 在 前 面 李 世 宜... 3 第 一 組 Is this true love- 由 愛 生 恨... 4 曾 毓 皓 丁 士 甫 邱 俐 綺 姜 季 芸 黃 子 芹... 4 第 二 組 流 年 方 學 緯 邱 子 銘 施 酈 庭 曾 柏 陞 黃 勻 琪 羅 凱 騰...

untitled

untitled

The golden pins of the PCI card can be oxidized after months or years

教 务 信 息 教 学 日 常 运 行 工 作 4 月 6 日, 教 务 部 高 丽 琴 老 师 参 加 南 昌 市 教 育 局 2016 年 中 小 学 教 师 资 格 认 定 工 作 培 训 会 2016 年 教 师 资 格 认 定 工 作 是 从 省 考 向 国 考 过 渡 后 的 第 一 次

Microsoft PowerPoint ?????????3 [Compatibility Mode]

派遣公司人力資源管理措施對派遣人員離職傾向之影響:

计算机网络与经济(二).doc

供热 2 版.indd

untitled

Microsoft Word - ch04三校.doc

投影片 1

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

关于建立境内违法互联网站黑名单管理制度的通知

<4D F736F F D20D0C5CFA2BBAFB7A2D5B9D6D8B5E3D7A8CFEEB9E6BBAE2E646F63>

? 這 全 都 是 市 政 府 提 供 給 我 的 資 料 低 底 盤 公 車 計 畫 96 年 預 算 新 台 幣 4,500 萬 元 97 年 預 算 新 台 幣 1 億 6,500 萬 元 98 年 預 算 新 台 幣 3 億 2,300 萬 元, 共 有 307 台 低 底 盤 公 車,99

98年度即測即評學科測試與即測即評即發證技術士技能檢定簡章

Microsoft Word 箕æ−¥ï¼‹å®ı稿;

資料結構之C語言重點複習

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

概述

封面-12

2005.book

MCSE• .PDF

84

Microsoft Word - Learn Objective-C.doc

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

untitled

怀化招聘网2016年上半年广东银行从业资格考试报名须知

untitled

Soft-Logic programming controller

2 25ms (DX1002 DX1004 DX2004 DX2008) : 200MB 2GB CF USB CF 200MB 170 CF


導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式

PowerPoint Presentation

FY.DOC

1. 软 件 核 武 器 CTreeNode 基 本 原 理 以 下 详 细 介 绍 这 一 技 术 的 基 本 原 理 -CTreeNode 这 是 一 种 数 据 结 构, 类 似 于 CObject 存 在 于 内 存 中 1. 能 够 以 树 形 的 方 式 嵌 套 存 贮 非 常 复 杂

AI-6527C doc

ext-web-auth-wlc.pdf


S 可编程控制器

untitled

SuperE RTU RTU/SCADA RTU SuperE RTU SuperE RTU SuperE RTU contr

51 C 51 isp 10 C PCB C C C C KEIL

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

關於本書 l 3 PhoneGap Appcelerator Titanium Sencha Touch (wrapper framework) Native App PhoneGap Build Native App Hybrid App Java Objective-C Android SDK

吉林省科技发展计划项目申报书23005

Measurement Studio Expands Your Test and Measurement Programming Power

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

untitled

Chapter 9: Objects and Classes

宏电文档

untitled

用户大会 论文集2.2.doc

Transcription:

NModbus API 手冊 版本 1.1, 2013.8 Written by Renee Lin

目錄 目錄... 2 1. 關於手冊... 4 2. NModbus API 函數... 5 2.1. Master API... 5 2.1.1. CreateRtu... 5 2.1.2. CreateIp... 6 2.1.3. CreateAscii... 7 2.1.4. WriteSingleCoil... 7 2.1.5. ReadCoils... 8 2.1.6. ReadInputs... 9 2.1.7. WriteSingleRegister... 10 2.1.8. ReadHoldingRegisters... 11 2.1.9. ReadInputRegisters... 12 2.1.10. ReadTimeout[ 屬性 ]... 13 2.1.11. Retries [ 屬性 ]... 13 2.2. Slave API... 15 2.2.1. CreateRtu... 15 2.2.2. CreateTcp... 16 2.2.3. CreateAscii... 17 2.2.4. Listen... 18 2.2.5. ModbusSlaveRequestReceived[ 事件 ]... 18 2.2.6. CreateDefaultDataStore... 19 2.2.7. DataStoreWrittenTo[ 事件 ]... 19 NModbus API 手冊, v1.1 最後編輯 2013.8 Page:2

2.2.8. CoilDiscretes [DO 資料陣列 ]... 20 2.2.9. InputDiscretes [DI 資料陣列 ]... 20 2.2.10. HoldingRegisters [AO 資料陣列 ]... 20 2.2.11. InputRegisters [AI 資料陣列 ]... 21 2.3. 通用 API... 22 2.3.1. Dispose... 22 附錄 : 錯誤訊息... 23 NModbus API 手冊, v1.1 最後編輯 2013.8 Page:3

1. 關於手冊 此手冊對於 NModbus 中所使用的 API 說明 什麼是 NModbus? 利用 NModbus 可實現 Modbus 的通訊協定, 它是由一群自願者所開發以及維護, 並且免費開放使用 ICP DAS 基於官方發佈的 NModbus 原始碼進行功能確認與改善, 程式開發員可以利用 ICP DAS 發佈的 DLL 進行 Windows 版 PC 或是 WinCE 版的 Modbus 程式開發 這個 DLL 具備以下功能 a. Modbus/RTU Master/Slave b. Modbus/ASCII Master/Slave c. Modbus/TCP Master/Slave d. Modbus/UDP Master/Slave 下載 DLL 與程式 a. WinForm 版本 DLL 和文件 :nmodbuspc.dll, log4net.dll 程式 b. WinCE 版本 DLL 和文件 :nmodbusce.dll, CABC.dll, FC19.dll 程式了解更多有關 Modbus http://www.icpdas.com/products/pac/i-8000/modbus_c.htm 適用 NModbus 開發的 PAC WinForm XPAC(WES 2009) Win8,Win7,Vista,Xp( 需有.NET framework) WinCE ViewPAC(CE5) WinPAC(CE5) XPAC(CE6) NModbus API 手冊, v1.1 最後編輯 2013.8 Page:4

2. NModbus API 函數 2.1. Master API 建立 Master 連線 Master.Read 更新資料至 UI UI 觸發事件 Master.Write Master.Dispose 2.1.1. CreateRtu 建立 modbus master RTU 的連線 ModbusSerialMaster CreateRtu( SerialPort serialport ) NModbus API 手冊, v1.1 最後編輯 2013.8 Page:5

serialport serialport 是由 new SerialPort() 建立, 而序列埠必需先被 serialport.open() 開啟 若 serialport 沒有指定值, 則會由系統帶入預設的值 例如 : 連接埠名稱為 COM1, 同位檢查為 None, 資料位元為 8, 停止位元為 1 回傳 ModbusSerialMaster [] SerialPort serialport = new SerialPort(); //Create a new SerialPort object. serialport.open(); ModbusSerialMaster master = ModbusSerialMaster.CreateRtu(serialPort); 2.1.2. CreateIp 建立 modbus master IP 的連線 ModbusIpMaster CreateIp( TcpClient tcpclient ) tcpclient tcpclient 是由 new TcpClient() 建立, 而 tcpclient 必需由 tcpclient.beginconnect() 產生連接 回傳 ModbusIpMaster NModbus API 手冊, v1.1 最後編輯 2013.8 Page:6

[] string ipaddress = 10.0.0.69 ; int tcpport = 502; TcpClient tcpclient = new TcpClient(); //Create a new TcpClient object. tcpclient.beginconnect(ipaddress, tcpport, null, null); ModbusIpMaster master = ModbusIpMaster.CreateIp(tcpClient); 2.1.3. CreateAscii 建立 modbus master Ascii 的連線 ModbusSerialMaster CreateAscii( SerialPort serialport ) serialport serialport 是由 new SerialPort() 建立, 而序列埠必需先被 serialport.open() 開啟 回傳 ModbusSerialMaster [] SerialPort serialport = new SerialPort(); //Create a new SerialPort object. serialport.open(); ModbusSerialMaster master = ModbusSerialMaster.CreateAscii(serialPort); 2.1.4. WriteSingleCoil 寫入值到 DO 位址 NModbus API 手冊, v1.1 最後編輯 2013.8 Page:7

void WriteSingleCoil( byte slaveid, ushort coiladdress, bool value ) slaveid 欲寫入裝置的 ID coiladdress 欲寫入的位址 value 若該位址要被寫入, 則寫入值為是 (TRUE); 若該位址沒有被寫入, 則值為否 (FALSE) 無 [] byte slaveid = 1; ushort coiladdress =1; bool value = true; master.writesinglecoil(slaveid, coiladdress,value); 2.1.5. ReadCoils 讀取 DO 的狀態 NModbus API 手冊, v1.1 最後編輯 2013.8 Page:8

bool[] ReadCoils( byte slaveid, ushort startaddress, ushort numofpoints ) slaveid 欲讀取裝置的 ID startaddress 開始讀取的位址 numofpoints 讀取的長度 回傳 bool[] [] byte slaveid = 1; ushort startaddress = 0; ushort numofpoints = 10; bool[] coilstatus = master.readcoils(slaveid, startaddress, numofpoints); 2.1.6. ReadInputs 讀取 DI 的狀態 bool[] ReadInputs( byte slaveid, ushort startaddress, NModbus API 手冊, v1.1 最後編輯 2013.8 Page:9

) ushort numofpoints slaveid 欲讀取裝置的 ID startaddress 開始讀取的位址 numofpoints 讀取的長度 回傳 bool[] [] byte slaveid = 1; ushort startaddress =0; ushort numofpoints = 10; bool[] status = master.readinputs(slaveid, startaddress, numofpoints); 2.1.7. WriteSingleRegister 寫入值到 AO 位址 void WriteSingleRegister( byte slaveid, ushort registeraddress, ushort value ) NModbus API 手冊, v1.1 最後編輯 2013.8 Page:10

slaveid 欲寫入裝置的 ID registeraddress 欲寫入的位址 value 欲寫入的值 無 [] byte slaveid = 1; ushort registeraddress = 1; ushort value = 1000; master.writesingleregister(slaveid, registeraddress, value); 2.1.8. ReadHoldingRegisters 讀取 AO 的值 ushort[] ReadHoldingRegisters( byte slaveid, ushort startaddress, ushort numofpoints ) slaveid 欲讀取裝置的 ID NModbus API 手冊, v1.1 最後編輯 2013.8 Page:11

startaddress 開始讀取的位址 numofpoints 讀取暫存區的長度 回傳 ushort[] Exampls [] byte slaveid = 1; ushort startaddress =0; ushort numofpoints = 10; ushort[] holding_register = master.readholdingregisters(slaveid, startaddress, numofpoints); 2.1.9. ReadInputRegisters 讀取 AI 的值 ushort[] ReadInputRegisters( byte slaveid, ushort startaddress, ushort numofpoints ) slaveid 欲讀取裝置的 ID startaddress NModbus API 手冊, v1.1 最後編輯 2013.8 Page:12

開始讀取的位址 numofpoints 讀取暫存區的長度 回傳 ushort[] [] byte slaveid = 1; ushort startaddress =0; ushort numofpoints = 10; ushort[] register = master.readinputregisters(slaveid, startaddress, numofpoints); 2.1.10. ReadTimeout[ 屬性 ] [ 屬性 ] 取得或設定讀取作業未完成時, 發生逾時之前的毫秒數 int ReadTimeout { get; set; } [] SerialPort serialport = new SerialPort();//use RTU for example serialport.open(); ModbusSerialMaster master = ModbusSerialMaster.CreateRtu(serialPort); master.transport.readtimeout = 300; //milliseconds 2.1.11. Retries [ 屬性 ] [ 屬性 ] 在遇到 IO 錯誤 逾時或損壞訊息等等的失敗情況後, 重試發送訊息的次數 NModbus API 手冊, v1.1 最後編輯 2013.8 Page:13

int Retries { get; set; } [] string ipaddress = 10.0.0.69 ; //use TCP for example int tcpport = 502; TcpClient tcpclient = new TcpClient(); tcpclient.beginconnect(ipaddress, tcpport, null, null); ModbusIpMaster master = ModbusIpMaster.CreateIp(tcpClient); master.transport.retries = 0; 注意 Retries = 0 表示不需要重試 NModbus API 手冊, v1.1 最後編輯 2013.8 Page:14

2.2. Slave API 取得裝置上的值 建立 Slave 連線 更新至 DataStore Slave.Listen 裝置觸發事件 : DataStoreWrittenTo Slave.Dispose 設定 DO 設定 AO 2.2.1. CreateRtu 建立 Modbus slave Rtu 的連線 ModbusSerialSlave CreateRtu( byte slaveid, SerialPort serialport ) slaveid serialport 欲建立連線裝置的 ID 序列埠必需被 serialport.open() 開啟, 而 serialport 是由 new SerialPort() 建立 NModbus API 手冊, v1.1 最後編輯 2013.8 Page:15

回傳 ModbusSerialSlave [] byte slaveid = 1; SerialPort serialport = new SerialPort(); serialport.open(); ModbusSlave slave = ModbusSerialSlave.CreateRtu(slaveID, serialport); 2.2.2. CreateTcp 建立 Modbus slave TCP 的連線 ModbusTcpSlave CreateTcp( byte slaveid, TcpListener tcplistener ) slaveid 欲建立連線裝置的 ID tcplistener tcplistener 是由 new TcpListener () 建立, 而 tcplistener 必需由 tcplistener.start() 開始接聽 回傳 ModbusTcpSlave NModbus API 手冊, v1.1 最後編輯 2013.8 Page:16

[] int port = 502; IPHostEntry ipentry = Dns.GetHostEntry(Dns.GetHostName()); IPAddress[] addr = ipentry.addresslist; TcpListener tcplistener = new TcpListener(addr[0], port); tcplistener.start(); ModbusSlave slave = ModbusTcpSlave.CreateTcp(slaveID, slavetcplistener); 2.2.3. CreateAscii 建立 Modbus slave Ascii 的連線 ModbusSerialSlave CreateAscii( byte slaveid, SerialPort serialport ) slaveid 欲建立連線裝置的 ID serialport 序列埠必需被 serialport.open() 開啟, 而 serialport 是由 new SerialPort() 建立 回傳 ModbusSerialSlave [] byte slaveid = 1; SerialPort serialport = new SerialPort(); serialport.open(); NModbus API 手冊, v1.1 最後編輯 2013.8 Page:17

ModbusSlave slave = ModbusSerialSlave.CreateAscii(slaveID, serialport); 2.2.4. Listen Slave 開始監聽要求 void Listen() [] int port = 502; //use Tcp for example IPHostEntry ipentry = Dns.GetHostEntry(Dns.GetHostName()); IPAddress[] addr = ipentry.addresslist; TcpListener tcplistener = new TcpListener(addr[0], port); tcplistener.start(); ModbusSlave slave =ModbusTcpSlave.CreateTcp(slaveID, tcplistener); slave.listen(); 無 2.2.5. ModbusSlaveRequestReceived[ 事件 ] 當 slave 收到要求的時候觸發事件 EventHandler<ModbusSlaveRequestEventArgs> ModbusSlaveRequestReceived [] NModbus API 手冊, v1.1 最後編輯 2013.8 Page:18

slave.modbusslaverequestreceived += new EventHandler<ModbusSlaveRequestEventArgs>(Modbus_Request_Event); 2.2.6. CreateDefaultDataStore 將 AO,AI 預設為 0,DO,DI 預設為 false DataStore CreateDefaultDataStore() [] Slave.DataStore = Modbus.Data.DataStoreFactory.CreateDefaultDataStore(); 回傳 DataStore 2.2.7. DataStoreWrittenTo[ 事件 ] 當 slave 的 DataStore 被 master 之命令寫入時觸發事件 EventHandler<DataStoreEventArgs> DataStoreWrittenTo [] slave.datastore.datastorewrittento += new EventHandler<DataStoreEventArgs>(Modbus_DataStoreWriteTo); NModbus API 手冊, v1.1 最後編輯 2013.8 Page:19

2.2.8. CoilDiscretes [DO 資料陣列 ] DO 的資料陣列 ModbusDataCollection<bool> CoilDiscretes { get; private set; } [] slave.datastore.coildiscretes[0] = true; slave.datastore.coildiscretes[1] = false; 2.2.9. InputDiscretes [DI 資料陣列 ] DI 的資料陣列, 可將裝置的 DI 數值儲存至此 ModbusDataCollection<bool> InputDiscretes { get; private set; } [] slave.datastore.inputdiscretes[0] = true; slave.datastore.inputdiscretes[1] = false; 2.2.10. HoldingRegisters [AO 資料陣列 ] AO 的資料陣列 NModbus API 手冊, v1.1 最後編輯 2013.8 Page:20

ModbusDataCollection<ushort> HoldingRegisters { get; private set; } [] slave.datastore.holdingregisters[0] = 222; slave.datastore.holdingregisters[1] = 333; 2.2.11. InputRegisters [AI 資料陣列 ] AI 的資料陣列, 可將裝置的 AI 值儲存至此 ModbusDataCollection<ushort> InputRegisters { get; private set; } [] slave.datastore.inputregisters[0] = 222; slave.datastore.inputregisters[1] = 333; NModbus API 手冊, v1.1 最後編輯 2013.8 Page:21

2.3. 通用 API 2.3.1. Dispose 對已定義的應用程序執行釋放或重設相關聯沒有應用的資源 void Dispose() 無 無 [] string ipaddress = 10.0.0.69 ; //use master tcp for example int tcpport = 502; TcpClient tcpclient = new TcpClient(); tcpclient.beginconnect(ipaddress, tcpport, null, null); //Create a new TcpClient object. ModbusIpMaster master = ModbusIpMaster.CreateIp(tcpClient); master.dispose(); NModbus API 手冊, v1.1 最後編輯 2013.8 Page:22

附錄 : 錯誤訊息 以下為 NModbus 錯誤代碼對應表 代碼 名稱 說明 01 不支援的功能 收到不被允許的指令碼 02 不合法的位址 收到不正當的位址 03 不合法的數值 收到不正確的數值 04 Slave 裝置失效 要回復要求給 master 時, 發生無法復原的錯誤 05 確認 ( 命令執行中 ) 當 master/slave 需要一段時間處理收到的要求時, 會發出此代碼以避免發生逾時錯誤 06 Slave 裝置忙碌 當 master/slave 正在處理長時間的要求時, 對方必須等到處理完畢後再傳送訊息 08 記憶體同位錯誤 當 master/slave 要讀取記錄檔時, 偵測到記憶體同位錯誤 0A 無效的閘道 閘道配置錯誤或過載 0B 目標裝置閘道沒有回應 目標裝置沒有回應 通常表示裝置目前不在線上 NModbus API 手冊, v1.1 最後編輯 2013.8 Page:23