ISS-3Lua可編程Modbus智能網關_第1頁
ISS-3Lua可編程Modbus智能網關_第2頁
ISS-3Lua可編程Modbus智能網關_第3頁
ISS-3Lua可編程Modbus智能網關_第4頁
ISS-3Lua可編程Modbus智能網關_第5頁
已閱讀5頁,還剩41頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、ISS-3Lua 可編程 Modbus 智能網關1、 硬件接口 21、 指示燈說明 22、 電源輸入接口 33、 串口分配 34、 RS485 口接線35、 RS232 口接線 46、 10/100Mbps 以太網接口 52、 安裝軟件 61、 首先以管理員權限運行 Xframe 安裝文件,并安裝軟件62、 選擇默認的“我的設備” ,然選擇“掃描可識別網絡設備” 63、 修改IP 64、 如果掃描不到設備 63、 進入產品的設置菜單81、 進入 Telnet 管理菜單 82、 操作規則 84、 進入編程環境101、 添加 Lua 程序編程環境 102、 上傳 Lua 程序至轉換器133、 掃描

2、添加目標設備 154、 手動添加目標設備 175、 定義多個目標設備 176、 上傳至轉換器 187、 查看調試信息 198、 更多 Lua 程序設計信息 195、 設置串口參數 201、 概述 202、 進入修改串口參數菜單 203、 配置串口基本參數 214、 配置串口使用方式 215、 設置為上位機時的參數 226、 切換端口類型 237、 設置串口波特率 248、 嵌入式Modbus虛擬機工作方式及參數設置 261、 概述 262、 Modbus虛擬機運行方式示例 271) 設置Modbus讀命令對應的寄存器值 272) 應答Modbus 寫命令303、 與 Modbus RTU串口上

3、位機通訊 351) 首先將ISS-3Lua的上位機串口連接至電腦 352) 設置Modbus Poll通過串口讀取數據 354、 Modbus虛擬機與協議轉換的聯合使用 379、 ISS-3Lua 產品描述表38十、京金華產品保修規定 39、硬件接口產品硬件接口如下圖所示OOOOOO,噓日電空攤等仕勒說諭口為Uf riF/inu/采用L3P本膏言及務機技術/受舞理寸運f亍基個熱土體*在號TTodte TCF律E.封工忙,支持令王機同時讀寫P HFAo/ ictUE日G宇。和LwiK宸美耕Lua甑吉普旄條MGdzu:Mj一二LS吃石笄思保京金華lSS-3Lua智能可編程超dbus協以轉換器RS4

4、851A+ G B-RS4S59A+ G B-RS4S5A+ G B-R*2321Etc G TxRS232Rx G TxPower SupplyDCS-36V3.琳 Max1、指示燈說明Power:電源指示燈,正常工作時應該為常亮狀態,否則請檢查設備供電。Active :工作指示燈,正常工作時,一秒閃爍一次。常亮,常滅都為故障狀態。DebugMode該指示燈常亮時,說明程序是以調試模式運行,不是最優性能。常滅時,為最優性能模式,取消所有Debug信息。Lua代碼狀態:如果長亮紅色指示燈,說明有Lua程序非正常退出,常見問題是,運行期間出錯導致虛擬機退出。Lua虛擬機狀態:啟動時會長亮綠色指示

5、燈 2秒,在此兩秒內,按下撥碼開關2,將會停止虛擬機運行, 用于解決程序錯誤造成的設備死 鎖。正常工作時,此指示燈為常滅狀態。編程時,此指示燈閃爍紅色指示燈。Modbus虛擬機狀態:主機通過以太網Modbus TCP協議讀取數據時,以紅色指示燈閃爍。主機通過串口 Modbus RTU協議讀取數據時,以綠色指示燈閃爍。2、電源輸入接口RS485ISS-3Lua產品供電電源為 DC8- 36V,最大消耗功率為 3瓦。最大消耗功率是指,以太網為 100Mbps連接,所有 全部掛接64個下位機時的功率。PWR-為電源輸入負極。PWR +為電源輸入正極。工:為接入大地,在強干擾環境或易招雷擊的環境下,需

6、要將此端子良好的接入大地。3、串口分配ISS-3Lua集成了 3個多功能串口,其中 1、2 口為RS485 RS232二合一端口。第 3 口固定為 RS485端口。通過Xframe軟件的Telnet管理功能登錄進ISS-3Lua管理菜單后,使用 u命令,對修改端口類型。如下圖所示,1、2 口可以分別切換為 RS485或RS232端口,但是同一端口的RS485RS232功能不能同時使用。注意!端口 3固定為RS485端口。例如,可以將端口 1切換為RS232 口(接線在 RS232 1),此時RS485 1 口將被禁用。同樣的,將端口 2切換為RS485 口(接線在 RS485 2),此時RS2

7、32 2 口將被禁用。 出廠默認設置為:端口 13均為RS485端口,接線在 RS485 13。所有RS232 口被禁用。4、 RS485 口接線ISS-3Lua支持3路增弓II型RS485接口,驅動能力為最多支持64個下位機。標準的RS485接口最多可支持 32個下位機,如果準備使用 64個下位機,請確認下位機節點所配備的RS485芯片是否能達到64個下位機的驅動要求,即 A B線之間的電阻彳1應不小于10K。ISS-3Lua的RS485口設計了工業級保護措施。具備抵御 ESD15KV 600W良涌、4KV快速脈沖群能力。出廠時,RS485參數為9600, N, 8, 1,并且默認開啟了全部

8、 3個RS485端口,禁用了所有的 RS232 口。RS485接法為,A+接A+或+, B-接B-或-,屏蔽層接 回注意! RS485通訊線應使用專用的 0.51mm線徑的屏蔽雙絞線,通訊距離越遠,需要的線徑越粗。屏蔽層應連接到G端子和每個下位機的 RS485數字地(或直流供電負極),才會起到屏蔽作用。如果干擾很小或者沒有干擾,可以使用非屏蔽雙絞線,但是線徑一定不能小于0.5mm,長距離傳輸應使用1mrn以上線徑的通訊線。不建議用網線做 RS485數據傳輸,如果必須使用網線,可以將2對或4對網線并聯使用,可提高通訊質量。5、RS232 口接線ISS-3Lua支持2路三線制 RS232口,RS2

9、32信號為:收 R(Rx)、發T (Tx)、信號地G (GND。其中發送信號最高電 平大于8V,可直接驅動無源 RS485/232轉換器或其他Tx取電設備。ISS-3Lua的RS232口設計了工業級保護措施。具備抵御ESD15KV 600W浪涌、4KV快速脈沖群能力。出廠時,RS232端口參數為 9600, N, 8, 1。注意! ISS-3Lua在連接RS232設備連接時,應采用 Rx-Tx, Tx-Rx , GND-GNDJ交叉線序。說明如下:接收R (Rx)連接對端 RS232的發送腳(Tx),對應DB9的3腳。發送T (Tx)連接對端 RS232的接收腳(Rx),對應DB9的2腳。信號

10、地 G (GND連接對端 RS232的信號地(GND,對應 DB9的5腳。RS232注意! ISS-3Lua出廠時,默認禁用了 RS232端口,如果計劃使用 RS232 口,需要使用Xframe的Telnet管理功能, 登錄進ISS-3Lua的管理菜單,使用 u命令,然后修改串口類型即可。6、10/100Mbps 以太網接口產品支持一個10/100Mbps以太網接口,支持網線自動翻轉。出廠時默認 IP 為 192.168.192.100/255.255.255.0、安裝軟件1、首先以管理員權限運行 Xframe安裝文件,并安裝軟件Xframe軟件,請聯系我公司技術支持。請在安裝程序上,單擊右鍵

11、,以管理員方式運行安裝程序。如果沒有 請確定安裝的Xframe軟件版本為4.00或更高,否則無法支持編程。2、選擇默認的“我的設備”,然選擇“掃描可識別網絡設備”管建期I夏埃建查詢掃描可識別網絡設雷全局設置臼書連曳_掃描應用可識別發替歸.3、修改IP選擇“掃描可識別網絡設備”信Xframe v4.00京金隼口網科技育震公司 行樹 槿除號理 查詢 叵弱函網貂設雷全局設置 I曰根結點- iI酗我的設普設備探測器窗口中,選中掃描到的設備,然后在IP地址欄中輸入新的IP,此IP應該與電腦在同一網段,并可互相訪問。單擊修改設備網絡參數按鈕即可修改完畢。修改IP后,單擊搜索設備,即可刷新顯示。4、如果掃描

12、不到設備如果搜索不到設備,請檢查如下情況:請將電腦設置為固定IP 。關閉電腦的防火墻及殺毒軟件。如果是筆記本電腦,暫時禁用 wifi 及其他不用的網絡連接。雙網卡電腦,請暫時禁用其他不用的網卡。RJ45 頭等電氣問題。檢查設備的 Link 指示燈(黃色指示燈)是否長亮,如果不亮,請檢查網線、進入產品的設置菜單1、進入Telnet管理菜單在設備探測器中,選中掃描到的,然后在管理菜單中,選擇使用Telnet管理此設備。出現下圖提示時,輸入口令,默認口令為全小寫的admin1 6 1101主機地址:主機端口;.|192.160.192.100 網 引|關閏退出 年 *籍蟹羽5上位機口登錄后,即可看到

13、設備的主管理菜單。2噌2置品口 2 RS485上位嘰口;七工.T參數 設置.己置串口 3 RS4S5 Lu社腳東端口S4口 dbus鹿捌機S 匚一砧1方4赤#妹1 V-Lg加拉機參附YT專輸加密參數N Q-Telnet Cli errt模式配置M噂言軻余內蔻關間 N-查著1P.網組物理地址. G隹局網絡配直. 1-加認證宣理.P-口令設置2、操作規則輸入菜單項前面的字母或數字即可進入相應的功能選項。例如輸入3即可進入配置下位機串口參數項。kraiilK1酉置里韁醯口 3 RS485赤腳本端口1 RS4852 RS485jServor 參ClientV-LYTQ-T !Inei Client模式

14、配置U-甘換里口類型M-i iW“余內存空間.NWi看工入網蟄物理地址.GW局網絡配置.工-1縱證管理P-口令設置.H-打X-T!t認設置.看及最新產品-輸入數值前的數字即可選擇該值。其他未用參數直接回車即可跳過。回車至主設置菜單后,設置項將自動保存。請封里波特率(bps);12-600800Z-Z-3 4 5 6 7 8gO 0 00 0 0 0 0 2 o O 2 4 6 5 0 0 0 871024串亡1c速度(9600):四、進入編程環境1、添加Lua程序編程環境啟動Xframe軟件,并且檢查軟件版本為Ver4.00或更高。首先選擇“我的設備”爸理何模塊號理黃詢3京腿豆 一然后在模塊管

15、理菜單里,選擇添加模塊Xframe MOO京金沏力閡科拴管理樹 與喚蹩理查詢 掃雨WL 設置模塊會數|選擇“嵌入式Lua程序設計”模塊,單擊確定選擇“嵌入式Lua程序設計”產品,然后單擊確定。在名稱處,為此Lua程序設計模塊設置一個名稱,此名稱為模塊名稱,并不是Lua代碼文件名稱。3根結點i我的設備添加單擊確定后,將會增加一個Lua程序設計1的模塊從管理樹定位的設爸(1)異常設普列表)當天報警記錄,共0條|解決方案 使用硼、版權聲明免責聲I名稱酉造Lg程序設計1被輪察錯選擇審展踞,勤在模塊上面單擊右鍵,選擇擴展設置,即可進入Lua編程界面。,用存當而晚目至就黑尾4Hl圖工作植式事再成檢式三用二

16、E叫希登了門口上由世屎品m苴-I用Rlf 口心.謫才低選ad.Eft機賓量51 whil h truei doM LS可以=至笈G變量.而無需定義.G 11=11+17 -aTring-百mat父救果雷逾尢郡分際菱”中剪/凸EJB曲敷 一口=工函救 E逐試主譏的信中京口顯示敖再不口 4X1H&I國U141打.EWfcL工工計數 加。11 a ;n 主循環內信加近日t留致革骨般匕用時間片百則相會等款卻口占有生過花引起H作不正 M 此處為莓?UFU,井等持端L 可以住用eiib口來薛式一;攵時間片.1 區 9ysli.bTO3sleeE: (100*)-is17 *nd-默認新加載的程序并沒有命名

17、,所以在上傳之前,必須指定一個名稱。單擊“是”繼續。在唯一名稱欄中,輸入程序名稱,并且必須是唯一名稱。然后單擊新建繼續。然后會出現選擇目標設備窗口,作為一個新建項目,并沒有任何定義的目標設備,所以要進行添加。3、掃描添加目標設備單擊“掃描添加目標設備”在設備探測器窗口中,會出現掃描到的ISS-3Lua產品,如果無法搜索到設備,請按照第二章,第三節“無法掃描到設備”的描述解決故障。注意!如果是通過路由器跨網段訪問,由于受路由器限制,將無法掃描到設備。在這種情況下可以通過下面章節, 以手動方式添加目標設備。然后選擇“應用選擇的設備”菜單。應用成功后,會自動添加選擇的目標設備。并且可以在界面上直接修

18、改此設備的一些參數。目防設備的邛|請試端口 胰也避過信息|允訐編程 除胡192. 168.1. 25.2I項密握手卜克明 否4、手動添加目標設備ping通目標設備ip ,并通常是在跨路由器訪問時,由于無法掃描設備,所以必須使用手動添加。前提是必須能夠 且路由器開放了 9000調試口,及91009200的編程口。在編程目標設備IP或域名中添加ISS-3Lua的IP,調試端口默認為 9000,如果目標設備修改了此端口,那么必須 設置正確的端口,否則將無法調試。完成后,單擊“手動添加目標設備”手動添加成功后,出現下列提示。ra .目防設備的邛I幽式端口 |接收誼試值凰允評編程|密鑰伽雷握手陶明900

19、0 是是01020 3040 E060 703 否5、 定義多個目標設備只要根據需要,重復上述兩種方式,可以添加多個目標設備,然后逐個自動編程。6、上傳至轉換器 單擊上傳按鈕。將會出現下列編程信息。寓告匡騙程目將殳雷向1支阻1. WE2間口限輸數握底如總計傳輸數捐字節數”啟 瑙回吐蚓1.器2卻口電輸薪據 瞿鼓盛鬣矗隆【喜盟.:,惠鼾 尚1氾1的1,52間00傳輸時癟翻,總計借微塘字節數:554 0(192 0nLME 口 1Q口代輸型宿授巔盛能盛櫻:譚建乳M制地7、查看調試信息1秒為間隔顯上傳成功后,目標設備將會自動重啟,然后執行新的Lua程序。此例子中,將會在調試信息串口以示i1的計數值。調

20、試及I空制白信JS11計數25811計數2S011計數200i 1計數2BL8、更多Lua程序設計信息請參考“ ISS系列Lua編程說明.doc”文檔。yr ihu zv 1巧已置曷口1 RS485上位機口2噌已置3口 2 RS485上位機口3嘈1置串口 3 RS485 LuaIf crllr. il J-ll I *FI或本端口五、設置串口參數1、概述實際上,ISS-3Lua完全支持通過Lua代碼設置串口參數。但是,如果在代碼中設置參數,將導致串口參數被固化,從而失去了靈活性。為了獲得更大的靈活性,可以通過ISS-3Lua的Telnet管理菜單來設置每個串口的參數。終端用戶可以根據實際情況自

21、行配置成所需參數,而無需修改代碼。從而實現與通用型轉換器相同的用戶體驗。2、進入修改串口參數菜單登錄進Telnet管理菜單,輸入12數字,即可分別配置 3個串口的參數。以配置串口 1為例子,輸入1,即可進入配置串口 1參數。復鬻設置,寺及最新產品.C-Modbus虛擬機Cl lent參數 Lu磁嬤臉散設置二Q-Telrtet Cl ient模式己亙 u-叨第P莖矍一M-堂壹剜余內森空間、M-查看IP.網絡物理地址.G-局網絡配置.IIP認證萱理.P-口令i遣3、配置串口基本參數輸入參數前的數字來選擇所需要的波特率。串口基本參數包括:波特率、數據位、停止位、校驗位。1-95002- 48003

22、192004 384005 576006-1152007- 3008-12009- 2400串口A速度(960。):數據沒有祗修改!位 居 王登居居居居1-.JT.Trnv3 8 7 6 5 請1-2-3-小串 A數據位S位):4、配置串口使用方式支持2種使用方式上位機串口模式:用于Modbus RTU串口上位機讀取數據,設置為此模式后,ISS-3Lua將為此串口建立 Modbus從站功能,任何支持 Modbus RTU協議的上位機均可以從此端口讀取轉換后的數據。Lua腳本端口: Lua程序使用此串口,設置為此模式后,此端口變為自由口, ISS-3Lua不為端口預設任何服務,此 串口功取決于L

23、ua程序功能。請選擇串口 A使用方式:1-上位機口用a耀:數厚*口讀寫數據.5、設置為上位機時的參數接收上位機數據幀間隔:默認為50ms。 在達到50ms時,ISS-3Lua沒再收到串口上位機數據時,ISS-3Lua將會判定一幀數據緩沖完成,將收到數據打包并開始進行數據處理。此參數越小,與上位機通訊速度也越快,但是過小的值,可能導致數據接收不完整,從而導致錯誤。收-發間隔:是指ISS-3Lua從接收到上位機下發的數據,到返回數據給上位機的之間的延遲,通常用于兼容慢速上位機。默認為 0ms,無延遲.接收上位機數據幀間隔(毫秒)(50):串讓位好,設置與上位機通訊時的收-發間隔(毫秒)(0):數據

24、汾有油修附!六、切換端口類型Lua程序前提下,Lua程序可以通過調用函數來切換串口類型。但是,通過管理菜單切換端口類型,可以在不修改將1, 2 口設置為所需要的 RS232或RS485口。使在用戶實際使用時,可根據現場情況靈活設置。登錄進管理菜單,輸入 u切換串口類型。槁輸上個指盒加上位機口1-S12噌己置品口 5噌已置臣 -Mcidbus虛二1 匕-4口處1g虛北RS485上位機口RS485 Lua腳本端口機Cl ie門母嗷 室數設置.Q TlLili Uliw展式配置盹髓券一履熱心里善物犍地址口類型輸入1或2,選擇要配置的端口,ISS-3Lua的端口 3固定為RS485,所以不會顯示。53

25、 置置置出 己己己ITKII 可1 2 X若當當A B口口口輸入1,選擇RS232 口,輸入2可以選擇為 RS485 口。選擇率口 2類型; 1/藻為郎232 2-切換為RS4g5 請選擇(RS485):已經選擇:RE 23 2回車至截圖顯示,此時 1 口已經被切換成 RS232,應接線在 RS232 1的端子。輸入x退出,然后重啟ISS-3Lua ,即可生效。MM 歹A B s s 者置置出 韁 可1 2 X配置完成后,回到主菜單,輸入 r重啟ISS-3Lua,使配置生效。 口口.按新 置;1裊 ,設一:二 兼7C啟+: i 8出 喚4-*:謔 ,9 ;R-二 X七、設置串口波特率ISS-3

26、Lua出廠時,所有串口參數為9600,N,8,1 。如需修改,可以輸入串口前的數字進行配置。例如配置串口 1,輸入1即可卜I j口 / 一、.1-配置串口 1 RS485上位機手豆王口 乙!廿凸n _i_ll3甘己置串口 3 RS435 Lu哪睡端口 一如db u 3虛排孔Serve t參數然后選擇波特率,默認為 9600和8數據位,可輸入波特率前面的數值進行修改。數據位默認為8位,通常不用修改,某些特殊的進口設備,可能需要設置為7數據位來通訊。請選擇彼特率(bps): 1-96002-48003-192004-384005-57600 6-11520C7-3008-12009-2400串 A

27、速度(96g);數據沒有被修改!位居數用居居居- - ft 予 co-76 5 青- -T 謨1 2 3 4串口域據但(淞):校驗位:默認為無校驗,可根據對端串口設備要求,設置為偶校驗或奇校驗。停止位:,默認為1停止位,除非對端串口設備有特殊要求,否則不需要修改,請選擇校驗位:2 -奇校臉4-寶裕5-標把串口 A校驗位猶校駛):數據沒有被修改!請選擇停止位:1T停止儀2-2停止位串口 A停止值(1位):設置完之后,回到主菜單,輸入r重啟后,串口參數生效。八、嵌入式Modbus虛擬機工作方式及參數設置1、概述ISS-3Lua擁有開創性的嵌入式Modbus虛擬機技術。在此技術支持下,ISS-3Lu

28、a與上位機的 Modbus TCR ModbusRTU通訊是完全自動化。 程序員不必再設計任何Modbus協議通訊代碼。得益與此技術,程序員只需調用很少的幾個函數,即可設置所有 Modbus寄存器的值,在上位機讀取數據時,Modbus虛擬機自動返回這些值。在上位機發出寫命令時,Modbus虛擬機使用消息機制進行應答,Lua程序只需簡單的應答此消息,即可獲得上位機下發的寫數據。卜圖描述Modbus虛擬機的工作方式及對外接口。用白Lw程序接口函數設置Modh產寄存爵數羽函數setvsluefclsetvaluefc3注冊寫命令消息revtnbifcOS讀命令對應的Mcdbn毋寄存器數據自動化的Mo

29、dbusJi位機通訊起登寫自令消息事口上位機ISS-3Lua上電后,即可自動初始化Modbus虛擬機,無需在程序中做任何操作。其工作參數也是通過Telnet管理菜單來進行設置。從而為用戶提供完整的成品化的用戶體驗。2、Modbus虛擬機運行方式示例1)設置Modbus讀命令對應的寄存器值讀命令是指功能碼為:01, 02, 03, 04的命令。直接調用lib_vmb.setvaluefc3 函數,即可設置 Modbus虛擬機03功能碼所屬的寄存器的值。上位機在讀取功能碼03和對應的寄存器地址時,即可讀到由程序設置的值的。例如調用下列代碼,將03功能碼的寄存器地址 04,下位機地址01,設置為fl

30、oat數據,其數值為1234.25。lib_vmb.setvaluefc3(4,1,4,1234.25);調用此函數后,通過 Modbus Poll即可用功能碼03,讀取起始地址 04,讀取2個寄存器地址,即可讀到1234.25此截圖為Lua程序代碼,上傳至ISS-3Lua后,調用Modbus Poll讀取數據。代碼項目管理從代碼庫生成代碼CE4口編程和片庫首理設置退出Lua YTfll 目標端口 ”1Q口 Lua. VMZ 目標端口;曰01 I Conman Li bwhile(true) do一數據類型為為汽匕近數據,占用2個寄存器地址,寄存器讀取數量為:? lib vrth .setva

31、luefc3 (4f 1 f 4 r 123 .25);print (string . iozr.at f設置功能碼。3,寄存券地址0r值1239,工5syslib.OBsleep1000);9 end;本例子使用 Modbus Poll測試,也可以使用任何支持Modbus TCR Modbus RTU協議的上位機軟件進行測試。首先安裝 Modbus Poll軟件,然后在 Connection菜單中選擇 Connect。Connect.本例子,使用 Modbus TCP協議進行通訊,所以 Connectoin選才T TCP/IP。在 IP Address 中填入 ISS-3Lua 的 IP ,

32、 Port 為 Modbus TCP端口 502。完成后單擊 ok在Modbus Poll軟件中選擇 Setup菜單,選擇 Read/Write Definition菜單項。1 Setup Functions 口印的 Windo 川Read/Write Definition.在填寫Modbus參數定義時,必須對應調用lib_vmb.setvaluefc3 所設置的數據本例子中,調用的是lib_vmb.setvaluefc3(4,1,4,1234.25)lib_vmb.setvaluefc3函數參數說明如下:參數1: Modbus寄存器地址,2個地址讀取4個字節參數2:下位機地址碼參數 3:數據

33、類型 2-ushort310ng,4-float,5-int,6-short;參數4:此Modbus寄存器地址的數據所以 lib_vmb.setvaluefc3(4,1,4,1234.25) 做如下操作:01。設置功能碼03所屬寄存器地址 04為Float數據,占用2個寄存器地址,數據為 1234.25,下位機地址為Modbus Poll讀此數據時的參數定義Slave ID :為下位機地址碼,對應地 2個參數,設置為 01Function :為功能碼,為 03,對應setvaluefc3 函數Address :為起始的寄存器地址,對應參數1,設置為04。Quantity :為讀取寄存器數量,對

34、應參數 3,數據類型為4-Float ,占用2個寄存器數量,設置為 2。Scan Rate :輪詢周期Display :顯示數據格式,對應參數3,數據類型為4-Float ,所以選擇Float Inverse(反轉浮點數格式)設置的值1234.25。完成設置后,單擊 ok,即可正確讀取由lib_vmb.setvaluefc3(4,1,4,1234.25)猊 Modbus Poll -寫 File Edit Connection Setup Functions H昌X 兄 ;|平1Tx = S; Err = 0: ID = 1: F = 03: SR = 100ms2) 應答Modbus寫命令寫

35、命令是指功能碼為:05, 06, 15, 16的命令。當Modbus虛擬機接收到上位機發送的寫命令時,會觸發寫命令消息。Lua程序只要應答此消息,即可讀取到上位機下發的數據。Lua程序必須預先注冊需要響應的功能碼和寄存器地址,下行代碼向Modbus虛擬機注冊16功能碼0610地址的消息,數據類型為floatlib_vmb.regvmbwrfc16(06,4,1,0);lib_vmb.regvmbwrfc16(08,4,1,0);lib_vmb.regvmbwrfc16(10,4,1,0);當上位機使用功能碼 16,向地址0610寫入數據時,將會觸發Modbus虛擬機的全局寫消息。所以Lua程序

36、完成消息注冊后,即可使用 waitwrevent函數等待全局寫消息被觸發。當消息觸發時,可以通過調用函數來讀取Modbus寄存器地址、功能碼、數據等信息。由于waitwrevent是阻塞式訪問,調用后會一直等待消息觸發,所以需要使用第2個Lua虛擬機來執行此功能。如截圖所示,Lua vm1用于設置 Modbus讀命令對應的寄存器值。第二個虛擬機Lua VM2用于響應Modbus寫命令消息。m i目桐帶口Qo目標端口 :Q1(H工print L注冊并響應Mcjdfcu3足功能碼命令)2 11=0;34 一下行代碼向同口已甘心虛擬機注冊1后功能可。”10地址的消息,數據類型為門迪七 lb_vrtb

37、-regvntel (0, 4,1,0);i lib_-vmb , xegvmfcwTfclC (09,4fifO;7 lib_vnti.regvrnfciwrf016 (10 4,1,0; 5 wtii le (true doio 一等待上位機號配業寄存器消息11 lib vrrib _ waitwievent (;12 一課取上位機寫數據13 i l-lib vmti _ getwrdata ();14 dacatyp1 J-b 1/mh . garwidaratvpe ()Common Lib本例子完整代碼如下print(注冊并響應Modbus 16功能碼命令”)-下行代碼向 Modbu

38、s虛擬機注冊16功能碼0610地址的消息,數據類型為floatlib_vmb.regvmbwrfc16(06,4,1,0);lib_vmb.regvmbwrfc16(08,4,1,0);lib_vmb.regvmbwrfc16(10,4,1,0);while(true) do-無限等待上位機 Modbus寫命令消息,waitwrevent函數不消耗CPU源,所以不影響其他虛擬機性能。lib_vmb.waitwrevent(-1);-Modbus虛擬機收到寫命令后,觸發 waitwrevent函數,繼續執行下列代碼-讀取上位機寫數據,i1為具體數據,Lua會自適應數據類型,而無需預先定義。i1=

39、lib_vmb.getwrdata();-取得此數據的數據類型,本例子根據數據類型來調用不同的打印代碼。datatype=lib_vmb.getwrdatatype()if (datatype=4) then-如果是float浮點數 print(string.format(rn else-其他為整數print(string.format(rn end;收到浮點數%2.2f, i1);收到整數%d, i1);-getwrfc 返回功能碼print(string.format(rn功能碼 0d, lib_vmb.getwrfc();-getwrreg 返回Modbus寄存器地址print(stri

40、ng.format(rn寄存器 0d, lib_vmb.getwrreg();-getwrsid返回下位機地址碼print(string.format(rn地址碼 0d”, lib_vmb.getwrsid();-如果數據錯誤,使用 setwrerror 通知Modbus虛擬機向上位機返回錯誤。-lib_vmb.setwrerror();-如果數據正確,使用 responsewrevent通知Modbus虛擬機向上位機返回正確數據。 lib_vmb.responsewrevent();end 使用Modbus Poll發送寫命令進行測試。-下行代碼向 Modbus虛擬機注冊16功能碼0610地

41、址的消息,數據類型為float函數regvmbwrfc16參數解釋如下參數1: Modbus寄存器地址參數 2:數據類型:2-unsigned short格式,3-unsigned long 格式,4-float格式,5-int 格式參數3:下位機地址參數4:默認數據,此參數目前無效果lib_vmb.regvmbwrfc16(06,4,1,0);lib_vmb.regvmbwrfc16(08,4,1,0);lib_vmb.regvmbwrfc16(10,4,1,0);Modbus Poll參數定義Lua程序使用上面的代碼注冊了功能碼16的消息。下面的截圖為對應的在 Modbus Poll 的

42、Functions 菜單中選擇 16:write registers渤upFuncTtions Display View WindowHelp五05; Write Single CoiLmAlt+F5D3: SFMi Write Single Register.15c Write Coils.Alt+F6Alt+F700M1&: Write Registers,.Alt+F811. Ma&lc Write Re-gisten.23: R.ead/Write Registers.Test Center,.SlaveID :為下位機地址碼,本例子為01,對應regvmbwrfc16(06,4,1,

43、0) 的參數3Address :為待寫入的 Modbus寄存器的起始地址,本例子為06,對應regvmbwrfc16的參數1,本例子共注冊了 3個消息,寄存器地址,分別為 06、08、10。從06開始。lib_vmb.regvmbwrfc16(06,4,1,0);lib_vmb.regvmbwrfc16(08,4,1,0);lib_vmb.regvmbwrfc16(10,4,1,0);2個寄存器地Quantity :寫入的寄存器數量,本例子為06,表示從06開始,寫6個寄存器地址,即0610。址寫4個字節的Float數據。設置完成后,雙擊窗口右側Modbus寄存器列表,即可修改待寫入的值完成后

44、,單擊send,將寫命令發送至ISS-3Lua如果返回 Response Ok,說明ISS-3Lua正確應答了此命令。同時在Xframe軟件中,相應的會返回應答寫命令的提示。如截圖所示。調試及控制臺信息江冊并響應N血如工16功籃碼命金收到浮點敕111.22功能碼16寄存器G地址碼1收到浮點數333,44功能碼10寄存器0地址碼I收到浮點數555 66功器碼16寄存罡10地址碼1注意! Modbus虛擬使用排隊方式處理多個上位機同時發送的寫命令。在使用responsewrevent或setwrerror 函數向Modbus虛擬機應答消息前,Modbus虛擬機將會一直鎖定觸發消息的上位機數據。此時

45、其他上位機的寫命令將會被排隊,等待當前上位機寫命令處理完之后,繼續處理下一個上位機的寫命令。3、與Modbus RTU串口上位機通訊 1)首先將ISS-3Lua的上位機串口連接至電腦ISS-3Lua出廠時,默認串口 1、2為上位機口,并且默認為RS485串口。PLG 觸摸屏的RS485 口可以直使用USB轉RS485線或者RS232轉RS485轉換器將電腦的串口連接至上位機串口, 接連接至上位機串口。置置置 一己己己 常漕用 1 2 32)設置Modbus Poll通過串口讀取數據如果是使用電腦測試,請安裝Modbus Poll軟件,然后在 Connection菜單中選擇 Connect。it

46、 CrnnEi口n Setup Functions圖 ConrrecL.,F3 I 1在Connection Setup菜單中選擇 Serial Port。Port號改成電腦的 RS485口,這個RS485口可以通過 US唳 RS485 生成,或者使用電腦的COMP,通過RS232/RS485轉換器轉換后連接至ISS-3Lua的上位機串口。Modbus的參數設置與 Modbus TCP的測試方法完全相同。Modbus TCP方法完全相同。例如,讀取03功能碼,從地址4開始,讀2個寄存器的值的設置方法與測試卜面截圖為通過ISS-3Lua的上位機串口,使用 Modbus RTU讀取數據的截圖。從上

47、面的例子中可以看出,Modbus虛擬機已經自動化處理了與Modbus上位機通訊的所有細節,程序員只需調用幾個簡單的函數,就可設置Modbus功能碼和寄存器的值。在調用函數設置數值后,上位機可立即讀取到這些值。同時,通過簡單的消息觸發、應答機制,就可以讀取到上位機下發的寫命令及數據。程序員只需編寫讀寫下位機數據的代碼,然后調用幾個函數與Modbus虛擬機對接,即可快速完成協議轉換器產品的設計。Modbus虛擬機同時支持以太網口、RS232RS485口與上位機通訊,在以太網口上支持 Modbus TCP Modbus RTU協議,在 RS232RS485 口上支持 Modbus RTU協議。以太網上位機應使用Modbus TCP或Modbus RTUB議與ISS-3Lua通訊,ISS-3Lua最多可支持64個TCP/IP連接同時讀寫數據,所以最多可支持64 個上位機同時讀寫數據。串口上位機應使用 Modbus RTU協議,兩個串口上位機可通過ISS-3Lua的2個上位機串口同時讀寫數據。例如 , 在調用 setvaluefc3 函數設置功能碼03 的寄存器值之后,網口上位機、串口上位機均可同時讀取

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論