請問各位LABVIEW前輩:
我有一台RKC溫控器(CB500),且使用的是modbus協定。
我用一般rs232轉rs485接頭連接到電腦,但是都無法讀取溫度資料。
請問要如何解決?是要買特殊的接頭嗎?還是其他方式?
軟體:LV 6.1 + WIN 98
謝謝!
請問各位LABVIEW前輩:
我有一台RKC溫控器(CB500),且使用的是modbus協定。
我用一般rs232轉rs485接頭連接到電腦,但是都無法讀取溫度資料。
請問要如何解決?是要買特殊的接頭嗎?還是其他方式?
軟體:LV 6.1 + WIN 98
謝謝!
你要先確認modbus的位址 讀取方式 讀取暫存器位址 讀取位元 crc運算碼QQ" 這樣就能肥來瞭
Groupie 您好
我這邊也和LabviewWin一樣 有類似的問題
但我的狀況稍微好一點 有原廠的資訊詢問
大概的 如下
位址(Address) :01 讀取方式(Function) :03
讀取暫存器位址(Data Address) :0029
讀取位元(Data Value): 0002
crc運算碼 : 15C3
請問後面 要怎麼組合呢?
原廠測試程式圖
首先先確認你的rs232轉rs485是4線式還是2兩線式,4線式會把送出的命令跟儀器回傳的資料串在一起後收回來,
兩線式則是單純的收回儀器的回應字串,所以請先確認你的轉換器type吧!
再來電腦端與儀器端的通訊參數要對的起來,意思就是兩端的設定值要一樣
ex: 鮑率 同位元 資料位元 停止位元=>9600bps O_81
接下來用軟體丟出命令,讀取溫控器的sv值(假設sv現在是1000),以MODBUS的例子來說,
電腦丟出(以下都是HEX CODE)
01(V) 03(W) 008A(X) 0001(Y) A5E0(Z)
(V)溫控器站號,即儀器的ID number
(W)MODBUS的FUNCTION CODE,03表示一次讀取一筆資料
(X)008A表示你要讀的參數位置,在溫控器上可能是sv值,或是其他,這得參照原廠的通訊手冊
(Y)0001表示從SV算起要讀幾筆資料,這邊是SV 1筆
(Z) crc checksum前面那些資料作crc運算
等待100ms後,如果有保佑溫控器應該會回你
01(V) 03(W) 02(X) 03E8(Y) XXXX(Z)
(V)溫控器站號,即儀器的ID number
(W)MODBUS的FUNCTION CODE,03表示一次讀取一筆資料
(X)02表示資料的BYTE數
(Y)03E8表示1000(SV值)
(Z) crc checksum前面那些資料作crc運算
最後如果是初學者不建議一開始就用LABVIEW來寫通訊,可以先用市面上的串列測試軟體例如ACCESSPORT或是
MODBUS POLL 來丟資料,確定儀器會回你後監看PORT上的收發資料(以上軟體都有這功能),確定了解每筆資料
的涵義後再用LABVIEW去CODING,敬祝順利!
經由以上的討論,我也碰到相同的問題<?:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
想問各位LABVIEW前輩:
我有一台溫控器(yokogawa up150),且使用的是modbus通訊協定,使用232轉485(2線),分別為RTU與ASCII,我使用是ASCII模式
由版上提供的意見知,由通訊手冊找到命令語法,對溫控器下命令來讀得資料
<?:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
因手冊提供的例子為UT100,其中最後的error check為86,並沒有特別說明如何查表來或是計算得來
吾人比照相同的命令語法去輸入語法 如0103 0001 0002 86
其中01溫控器站號
03讀取動作
0001 d-記憶體位址
0002 對應記憶的數
但最後一項是依照例子隨便試的,不確定是否為86
請問版上的前輩,那裡需要修改的地方,或是少輸入什麼
因為labview一直讀不到值,但也沒有錯誤的訊息。
希望版上前輩提供意見
最後附上程式 串列通信架構UP150-1.vi
ps.先試看看jutjy67前輩的意見試看看別的通訊軟體測試看看硬體上是否有問題
leechi40028.9737731482我也遇到類似問題 我的問題是找不到RTU MODE文件 溫控使用CB400
依據您的問題 我認為若使用ASCII MODE, 您應該還要輸入"start of message mark",這部份要查appendix, 且LRC應是用算出來的(與CRC-16類似),應該上辜狗或找廠商問一下, 最後再加上CR, LF, 這樣才是一個完整的ASCII command....
若有錯誤 請指導一下 我目前也在搞這個
確定CB系列大都使用ASCII MODE了
To LabviewWin
您可下 04 30 31 4D 31 05 看看
04 : EOT
30 31 : address 01
4D 31 : identifier M1(get PV)
05 : ENQ
garyO40029.465To 各位大大!
經過這麼多大大的熱情回覆,目前已經可以抓到資料(SV值)。
再次感謝各位大大的幫忙!
謝謝!
不建議使用modbus asc||的格式也,因為資料量是rtu的兩倍,多丟多錯嘛!而且LRC跟CRC比起來
CRC的偵誤率遠大於LRC,如果可以的話還是建議使用MODBUS RTU的協定,建議使用者先去抓
MODBUS POLL來試看看,附上軟體的教學,請參考,另外RKC的溫控器(MODBUS TYPE)只支援
MODBUS RTU,如果是丟ASC的格式應該是RKC自己的BUS,並非MODBUS ASC||
how to use.doc
另外想問jutjy前輩 。
我的問題也和以上前輩相同,想問的是利用你所提供的測試軟體,利用你所教的設定
在設定完成後,會有timeout的訊息,一直想是不是硬體接線上的問題,
不知各位前輩有沒有其他建議來debug,來擷取資料
我主要介面為rs232轉接485接頭,在利用(T+)(T-)直接連線溫控表
附硬體示意圖
leechi40029.7509722222
各位 筆誤
下午找代理商拿說明 , RTU command可使用
garyO40029.8062152778<span =“bold”>TO leechi
(1)會TIMEOUT的原因應該出現在CONVERTER,你那一顆應該是4線式的CONVERTER喔!
沒猜錯的話應該有R+R-T+T-的端子吧,這顆正確的用法應該要R+和T+短接後接到溫控器
的+,<span =“bold”>R-和T-<span =“bold”>短接後接到溫控器的負,這樣才會通的起來(軟體要支援),但即使接線正確
MODBUS POLL也不支援4線式的CONVERTER,因為<span =“bold”>4線式的CONVERTER會把電腦送
出的資料和儀器的回應資料串在一起後收回,所以如果是用4線式的<span =“bold”>CONVERTER不太容易
找到對應的軟體,還是建議你使用2線式的CONVERTER,附上2線式CONVERTER的圖片請參考。
敬祝順利!
<span =“bold”>2線式和<span =“bold”>4線式的差異請見以下說明
<span =“bold”>電腦–>0103008A0001A5E0
2線式會收回<-----01030203E8XXXX(儀器回你的)
<span =“bold”>4線式會收回<-----<span =“bold”>0103008A0001A5E0<span =“bold”>01030203E8XXXX(串在一起)
<span =“bold”>
(2)雖然YOKOGAWA的溫控器一次可以讀取多筆暫存器的資料,不過剛開始試還是建議你把
資料筆數設為一筆(Quantity=1)
converter.pdf
To jutjy67前輩
已經聽從建你的建議去更改接線方式,現在狀況已能正常連線
正如你所說4線回覆會將所有data資料串在一起,需自行解讀位置所代表的意義
電腦-->0103008A0001A5E0
2線式會收回<-----01030203E8XXXX(儀器回你的)
4線式會收回<-----0103008A0001A5E001030203E8XXXX(串在一起)
現在在解讀中,若有新的結果在回覆
請問:
我最近有跟你一樣的問題,要寫Labview的程式,你可以把程式放上來,讓我也了解.
[QUOTE=LabviewWin]
To 各位大大!
經過這麼多大大的熱情回覆,目前已經可以抓到資料(SV值)。
再次感謝各位大大的幫忙!
謝謝!
[/QUOTE][QUOTE=LabviewWin]
不好意思請問 如果我要啟動 yokogawa up150
使用RTU碼 的位子1 下的方式是如下嗎?
01 06 0078 0001 C813
如果我要停止下的方式是如下嗎?
01 06 0078 0000 09D3
最主要是0001為啟動? 和 0000為停止嗎?