在PC上使用labview modbus TCP與台達HMI連線問題





人機設備:DOP-107IV
目前連線方式:用乙太網路線跟電腦連接

設定方式,網路IP設定為電腦自己IP,目前在連線上會出現538182的error code有去看過底下的文章,好像跟暫存器位址設定有關西,但我不確定也有找到疑似台達人機的modbus暫存器位址,但我照著使用,Labview這邊就跳error code,人機這邊也有跳TCP問題 22 的error code,想詢問各位大大我程式上有哪些問題嗎?

image

Modbus RTU Communication Error Code: 538182 - NI Community


如果單純建立連線不會有任何錯誤發生!

LV & DOP_107IV Comminucation Demo,如下,參考

1、Input Register(3x):PLC端僅 Read

2、Output Register(4x):PLC端可 Read/Write,本次Demo使用方式

3、Modbus M / S:
(1) PLC (ID=1,S) => IP=192.168.102.196
(2) HMI (ID=2,M) => 使用台達模擬器,IP=本機PC IP=HMI IP=192.168.102.197

4、Demo影片&圖示,如下

DOP_107IV_Demo.rar (347.0 KB)

請問前輩我一定有需要用PLC嗎?
我沒辦法直接PC>HMI互通就好嗎?

1、我沒有用PLC哦 ~ 圖片中是用 Labview 寫 「PLC Simulator」 來當 HMI要讀的裝置,也就是您說的 1237那個位置

2、PLC Simulator 可對 HMI 寫入,HMI 可對 PLC Simulator 寫入,如下影片展示內容
DOP_107IV_Demo.rar (347.0 KB)

3、承1,下圖所表達的就是 PC(即 PLC Simulator) 與 HMI通訊

想請問假如用別間的HMI方法也是都一樣嗎
modbus address都是用16進制?

所以大大HMI部分是用線上模擬方便我看嗎

@Lotun123

所以請問前輩我PLC的IP是=我電腦的位址嗎

我目前在電腦端上的HMI線上模擬是可以的,但不知為何跟實體HMI連線他還是會跳錯誤

1、大部分都是HEX,看編輯軟體要求,FFFF可表達65535個位址

2、您用這台DOV-107IV是用16進制定址,如對1237讀寫,您寫的是{EtherLink1}[email protected],實際是{EtherLink1}[email protected]才對,這裡您就錯了

我的PLC Simulator IP=192.168.102.196 即是對應您的192.168.0.59

HMI 與 PC端 ID 不可重覆,我的PLC Simulator ID=1,HMI ID=2

下圖中紫色框為台達HMI模擬器

那跟我設定的都一樣
我的PC IP 對應你 PLC Simulator IP設定位置
我也是PLC Unit ID = 1 HMI = 2
但我線上模擬測試是OK的
與實際機台聯線錯誤碼一樣顯示22


這邊是實際的狀況Labview有執行,但人機還是錯誤

@Lotun123



另外想詢問前輩我程式這邊只能輸入給HMI,沒辦法從HMI抓回來是我哪個部分用錯了嗎?

@Lotun123



請問前輩我另外一邊的人機是proface的GP 4501TW,我按鈕上的設定長這樣請問這個也是Hex嗎?
沒辦法設定成4D5

目前想要跟電腦連線也是會跳錯誤


目前是跳RHAA065也有跳過68跟69

但我PING我Proface的HMI也可以PING到

目前HMI連線不到PC的問題都解決了,目前剩下proface的modbuss address設定疑問,以及讀取位置的使用方法

恭喜!HMI無法連線PC問題是?

比較像是網路的問題,之後改把全部會用到的設備插在Hub上再一起進到電腦,而不是個別進到電腦,想請問我讀取的部分有何問題,為何改成proface的人機上就沒辦法寫入了

@Lotun123


不過proface的HMI的address跟Labview這邊好像差1,讀取還是沒辦法讀取@@

@Lotun123
前輩我想詢問您,要是我是用(4x)可以讀跟寫的Register的話,我這個元件應該要能輸入也能接受當我在HMI上輸入的數值才對,不過我目前只能write給HMI,當我在HMI上寫入資料時我的read values不會更改,請問是我哪邊有設定不對嗎?
read count的用意是? 我不太清楚

image

image

一、HMI通常為 Master角色,以DOV-107IV 1237(4x)位置R/W來說,其實我們一直都在Slave上作業,如下概念圖及先前提供的影片內容可得知

DOP_107IV_Demo.rar (347.0 KB)

二、read count 指的就是 4x Register Address位址數量,如上圖示中的「Register(4x):0~1238」,共設定1239個位址(為了包含1237而設定的)

三、下圖提供參考,圖片中 registers to write及 registers values 以4x「位址」來說,二者是相同的,只是W與R的差別而已



四、以上,參考

所以 read count就是讓我設定我總共要使用幾個位址這樣嗎?
如果我要用到65536我 read count要設定為65536這樣嗎?
我應該沒有理解錯誤吧