aquze123
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 14 個(gè)
工控威望: 80 點(diǎn)
下載積分: 506 分
在線時(shí)間: 8(小時(shí))
注冊(cè)時(shí)間: 2018-11-14
最后登錄: 2019-07-11
查看aquze123的 主題 / 回貼
樓主  發(fā)表于: 2019-04-22 19:04
各位大佬好~

有個(gè)問題請(qǐng)教一下,有不正確的地方希望指出。

FX3U-485ADP-MB我這么接應(yīng)該是CH2對(duì)吧,F(xiàn)X3U外接了一個(gè)FX3U-422-BD板和FX3U-485ADP-MB。

現(xiàn)在的接法是通過一個(gè)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,無校驗(yàn),停止位1,連接串口沒反應(yīng)。
[upload=2]

我自己分析,有幾個(gè)可能的原因。
(1)附加到PLC的程序錯(cuò)誤,我按說明書從站的例程寫的,把寄存器從CH1的改為CH2的,應(yīng)該沒啥問題吧?
(2)接線問題,看到有大佬接線的時(shí)候,把SG接到232轉(zhuǎn)485的地上,我們這邊也很多232和485設(shè)備,不接地不好,但一般也能用吧。
(3)串口調(diào)試參數(shù)有問題,或者發(fā)的指令有問題。

因?yàn)樽约菏莿側(cè)腴T,也是看著資料一步步過來,整個(gè)上位機(jī),其他感覺也不難,但現(xiàn)在就卡在串口通訊這一塊了,好久了~

希望大佬們指點(diǎn)一下~
aquze123
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 14 個(gè)
工控威望: 80 點(diǎn)
下載積分: 506 分
在線時(shí)間: 8(小時(shí))
注冊(cè)時(shí)間: 2018-11-14
最后登錄: 2019-07-11
查看aquze123的 主題 / 回貼
1樓  發(fā)表于: 2019-04-22 19:10
另外,我現(xiàn)在用FX3U-422-BD板通訊已經(jīng)正常了,但因?yàn)椴恢С謒odbus,只支持無協(xié)議通訊。
當(dāng)時(shí)是不知道真實(shí)地址是怎么樣的,也不太熟悉無協(xié)議通訊,現(xiàn)在這個(gè)FX3U-485ADP-MB模塊也沒搞明白。
找了論壇有個(gè)老哥,無協(xié)議通訊的地址轉(zhuǎn)換關(guān)系好像是這樣的。
1、對(duì)于D區(qū):
ADDR0小于8000:ADDR=1000H+ADDR0×2(ADDR0為實(shí)際地址值)
ADDR0大于8000:ADDR=0E00H+(ADDR0-8000)×2
2、對(duì)于C區(qū):
字與雙字:
ADDR0小于200:ADDR=0A00H+ADDR0×2
ADDR0大于等于200為雙字逆計(jì)數(shù)器,則:
ADDR=0C00H+(ADDR0-200)×4
3、對(duì)于T區(qū):
字:ADDR=0800H+ADDR0×2
位:ADDR=00C0H+ADDR0×2
4、對(duì)于M區(qū):
ADDR0<8000:ADDR=0100H+ADDR0/8
ADDR0>=8000:ADDR=01E0H+(ADDR0-8000)/8
5、對(duì)于Y區(qū)
ADDR=00A0H+ADDR0/8
6、對(duì)于X區(qū)
ADDR=0080H+ADDR0/8
7、對(duì)于S區(qū)
ADDR=ADDR0/8

比如我D200,是一個(gè)16-bit Signed    的數(shù)據(jù),他的真實(shí)地址就是1000H+200*2=1400H嗎?
aquze123
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 14 個(gè)
工控威望: 80 點(diǎn)
下載積分: 506 分
在線時(shí)間: 8(小時(shí))
注冊(cè)時(shí)間: 2018-11-14
最后登錄: 2019-07-11
查看aquze123的 主題 / 回貼
2樓  發(fā)表于: 2019-04-22 20:42
那段PLC從站程序我加到Main里面,好像我自己的程序就失效了,emmm~
aquze123
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 14 個(gè)
工控威望: 80 點(diǎn)
下載積分: 506 分
在線時(shí)間: 8(小時(shí))
注冊(cè)時(shí)間: 2018-11-14
最后登錄: 2019-07-11
查看aquze123的 主題 / 回貼
3樓  發(fā)表于: 2019-04-23 11:48
做著,都不太想做這個(gè)上位機(jī)了,都是坑啊~
沒有解除過工控上位機(jī),唉,要是我當(dāng)時(shí)沒讓供應(yīng)商選三菱的PLC,選個(gè)國(guó)產(chǎn)的海為,西門子都好呀·
三菱的太麻煩了
aquze123
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 14 個(gè)
工控威望: 80 點(diǎn)
下載積分: 506 分
在線時(shí)間: 8(小時(shí))
注冊(cè)時(shí)間: 2018-11-14
最后登錄: 2019-07-11
查看aquze123的 主題 / 回貼
4樓  發(fā)表于: 2019-04-23 19:56
emmm,有償援助可以不~
aquze123
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 14 個(gè)
工控威望: 80 點(diǎn)
下載積分: 506 分
在線時(shí)間: 8(小時(shí))
注冊(cè)時(shí)間: 2018-11-14
最后登錄: 2019-07-11
查看aquze123的 主題 / 回貼
5樓  發(fā)表于: 2019-04-25 09:23
引用
引用第7樓六六的風(fēng)于2019-04-24 11:50發(fā)表的  :
M8411是通訊參數(shù)設(shè)置特殊繼電器,需要放到你程序的開頭才會(huì)有效吧,記得好像是這樣的,你試一下吧



您好,我現(xiàn)在把程序?qū)懺贛ain的開頭,監(jiān)控查看D8420的數(shù)值為4225,轉(zhuǎn)為二進(jìn)制1000010000001000,對(duì)應(yīng)的應(yīng)該是8位,無校驗(yàn),停止位1,波特率19200,RS-485c。

這樣子應(yīng)該是成功的吧,但是串口調(diào)試工具好像還是沒反應(yīng),我的CH1是422-BD板,應(yīng)該也支持?jǐn)U展485ADP-MB的吧~
aquze123
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 14 個(gè)
工控威望: 80 點(diǎn)
下載積分: 506 分
在線時(shí)間: 8(小時(shí))
注冊(cè)時(shí)間: 2018-11-14
最后登錄: 2019-07-11
查看aquze123的 主題 / 回貼
6樓  發(fā)表于: 2019-04-26 17:28
非常感謝各位的幫助,后來經(jīng)過測(cè)試,存在兩個(gè)問題。
(1)少寫了一行寫入MOV K10 D8431,并且D8420寄存器,應(yīng)該是MOV H1081 D8420,
(2)另外因?yàn)檫@個(gè)程序順序執(zhí)行是是從SD-RUN開始,程序沒有在開頭。

總之調(diào)試成功很開心,非常感謝壇友的幫助,后續(xù)有進(jìn)展再回來回復(fù)。
aquze123
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 14 個(gè)
工控威望: 80 點(diǎn)
下載積分: 506 分
在線時(shí)間: 8(小時(shí))
注冊(cè)時(shí)間: 2018-11-14
最后登錄: 2019-07-11
查看aquze123的 主題 / 回貼
7樓  發(fā)表于: 2019-05-13 13:43
引用
引用第9樓twingo49于2019-04-25 11:34發(fā)表的  :
4225 轉(zhuǎn)二進(jìn)制應(yīng)該是 0001 0000 1000 0001所以你的波特率應(yīng)該是9600,還有你的設(shè)定是從站,站號(hào)為4。


在加入MODBUS通訊代碼以后,原程序異常,出問題的地方,其實(shí)也很基礎(chǔ),例程里最后一行,MOV K100 D8436,就是讓通信計(jì)數(shù)器-通信事件日志的存儲(chǔ)起始軟元件從D100開始,但是D100已經(jīng)被原程序占用,改成K500,從D500開始,就沒有沖突問題了。


因?yàn)镻LC源碼是供應(yīng)商提供的,程序本身我們其實(shí)也沒有動(dòng)過其他的,沒有檢查元器件表占用情況。

總之,PLC程序還是得供應(yīng)商改,但是對(duì)于發(fā)生錯(cuò)誤的原因是記住了。