aquze123
級別: 正式會員
|
各位大佬好~ 有個問題請教一下,有不正確的地方希望指出。 FX3U-485ADP-MB我這么接應(yīng)該是CH2對吧,F(xiàn)X3U外接了一個FX3U-422-BD板和FX3U-485ADP-MB。 現(xiàn)在的接法是通過一個232轉(zhuǎn)485轉(zhuǎn)接器接到電腦上,RDA短接接SDA接轉(zhuǎn)接器的485+,RDB短接SDB接轉(zhuǎn)接器的485-,然后在PLC的Main程序里加了這段,把PLC作為從站。 但是呢,這樣子,串口調(diào)試工具,波特率19200,數(shù)據(jù)位8,無校驗,停止位1,連接串口沒反應(yīng)。 [upload=2] 我自己分析,有幾個可能的原因。 (1)附加到PLC的程序錯誤,我按說明書從站的例程寫的,把寄存器從CH1的改為CH2的,應(yīng)該沒啥問題吧? (2)接線問題,看到有大佬接線的時候,把SG接到232轉(zhuǎn)485的地上,我們這邊也很多232和485設(shè)備,不接地不好,但一般也能用吧。 (3)串口調(diào)試參數(shù)有問題,或者發(fā)的指令有問題。 因為自己是剛?cè)腴T,也是看著資料一步步過來,整個上位機,其他感覺也不難,但現(xiàn)在就卡在串口通訊這一塊了,好久了~ 希望大佬們指點一下~ |
---|---|
|
aquze123
級別: 正式會員
|
另外,我現(xiàn)在用FX3U-422-BD板通訊已經(jīng)正常了,但因為不支持modbus,只支持無協(xié)議通訊。 當(dāng)時是不知道真實地址是怎么樣的,也不太熟悉無協(xié)議通訊,現(xiàn)在這個FX3U-485ADP-MB模塊也沒搞明白。 找了論壇有個老哥,無協(xié)議通訊的地址轉(zhuǎn)換關(guān)系好像是這樣的。 1、對于D區(qū): ADDR0小于8000:ADDR=1000H+ADDR0×2(ADDR0為實際地址值) ADDR0大于8000:ADDR=0E00H+(ADDR0-8000)×2 2、對于C區(qū): 字與雙字: ADDR0小于200:ADDR=0A00H+ADDR0×2 ADDR0大于等于200為雙字逆計數(shù)器,則: ADDR=0C00H+(ADDR0-200)×4 3、對于T區(qū): 字:ADDR=0800H+ADDR0×2 位:ADDR=00C0H+ADDR0×2 4、對于M區(qū): ADDR0<8000:ADDR=0100H+ADDR0/8 ADDR0>=8000:ADDR=01E0H+(ADDR0-8000)/8 5、對于Y區(qū) ADDR=00A0H+ADDR0/8 6、對于X區(qū) ADDR=0080H+ADDR0/8 7、對于S區(qū) ADDR=ADDR0/8 比如我D200,是一個16-bit Signed 的數(shù)據(jù),他的真實地址就是1000H+200*2=1400H嗎? |
---|---|
|
aquze123
級別: 正式會員
|
做著,都不太想做這個上位機了,都是坑啊~ 沒有解除過工控上位機,唉,要是我當(dāng)時沒讓供應(yīng)商選三菱的PLC,選個國產(chǎn)的海為,西門子都好呀· 三菱的太麻煩了 |
---|---|
|
aquze123
級別: 正式會員
|
您好,我現(xiàn)在把程序?qū)懺贛ain的開頭,監(jiān)控查看D8420的數(shù)值為4225,轉(zhuǎn)為二進(jìn)制1000010000001000,對應(yīng)的應(yīng)該是8位,無校驗,停止位1,波特率19200,RS-485c。 這樣子應(yīng)該是成功的吧,但是串口調(diào)試工具好像還是沒反應(yīng),我的CH1是422-BD板,應(yīng)該也支持?jǐn)U展485ADP-MB的吧~ |
---|---|
|
aquze123
級別: 正式會員
|
非常感謝各位的幫助,后來經(jīng)過測試,存在兩個問題。 (1)少寫了一行寫入MOV K10 D8431,并且D8420寄存器,應(yīng)該是MOV H1081 D8420, (2)另外因為這個程序順序執(zhí)行是是從SD-RUN開始,程序沒有在開頭。 總之調(diào)試成功很開心,非常感謝壇友的幫助,后續(xù)有進(jìn)展再回來回復(fù)。 |
---|---|
|
aquze123
級別: 正式會員
|
在加入MODBUS通訊代碼以后,原程序異常,出問題的地方,其實也很基礎(chǔ),例程里最后一行,MOV K100 D8436,就是讓通信計數(shù)器-通信事件日志的存儲起始軟元件從D100開始,但是D100已經(jīng)被原程序占用,改成K500,從D500開始,就沒有沖突問題了。 因為PLC源碼是供應(yīng)商提供的,程序本身我們其實也沒有動過其他的,沒有檢查元器件表占用情況。 總之,PLC程序還是得供應(yīng)商改,但是對于發(fā)生錯誤的原因是記住了。 |
---|---|
|