我好像是
大波就是我
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 303 個(gè)
工控威望: 603 點(diǎn)
下載積分: 1392 分
在線時(shí)間: 491(小時(shí))
注冊(cè)時(shí)間: 2012-12-09
最后登錄: 2024-10-19
查看我好像是的 主題 / 回貼
樓主  發(fā)表于: 2017-09-18 18:02
現(xiàn)在是這樣。有一臺(tái)上位機(jī)。程序是死的,我沒有辦法修改。上位機(jī)通過rs232接口跟下位機(jī)(PLC)通訊。
1:PLC發(fā)送給上位機(jī)的格式跟內(nèi)容:PLC發(fā)送數(shù)據(jù) 03 13 02 SD 給上位機(jī),  意思是讓上位機(jī)進(jìn)行某一個(gè)操作  然后上位機(jī)返回03 13 01E5  說明操作成功(操作很多,這只是舉例子)
2:上位機(jī)發(fā)送給PLC的格式跟內(nèi)容:上位機(jī)發(fā)送數(shù)據(jù) 03 13 02 GD   意思是讓下位機(jī)(PLC)進(jìn)行某一個(gè)操作  然后上位機(jī)返回03 13 01E8  說明操作成功.(操作很多,這只是舉例子)

3:上位機(jī)不停發(fā)送固定數(shù)據(jù)給下位機(jī)PLC 88 88 88 88,  頻率是每秒一次。(作用是判斷上位機(jī)是否死機(jī))
4:下位機(jī)不停發(fā)送固定數(shù)據(jù)給上位機(jī) 66 66 66 66,  頻率是每秒一次。(作用是判斷下位機(jī)是否死機(jī))



問題:請(qǐng)問一下這個(gè)應(yīng)該用什么PLC?走自由口通訊協(xié)議?可是PLC跟上位機(jī)一直在不停發(fā)送跟接收數(shù)據(jù)哎。接收跟發(fā)送都是4組十六進(jìn)制數(shù)據(jù)。要是有協(xié)議的話我還是知道怎么寫,不同數(shù)據(jù)發(fā)送給不同寄存器嘛。
可現(xiàn)在沒辦法指定某一個(gè)寄存器哎,都是一股老的發(fā)送,接收。發(fā)送跟接收就這么四組數(shù)據(jù),沒有指定寄存器哎。


有成功例子,人家下位機(jī)是用STC C52單片機(jī)高仿三菱的工控板子。說明這個(gè)是可以寫出來的嘛。
請(qǐng)各位大神提供一個(gè)思路,成功的,我發(fā)微信紅包哈。上位機(jī)發(fā)送接收格式內(nèi)容沒有辦法修改哎。這是死的。
weijishanggu
289019538@qq.com
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 51 個(gè)
工控威望: 889 點(diǎn)
下載積分: 612 分
在線時(shí)間: 79(小時(shí))
注冊(cè)時(shí)間: 2014-05-04
最后登錄: 2024-01-10
查看weijishanggu的 主題 / 回貼
1樓  發(fā)表于: 2017-09-18 19:39
你用的什么品牌的PLC?上位機(jī)的軟件如果不是很復(fù)雜可以重做個(gè),可以走自由協(xié)議通訊,發(fā)送不同的指令接受的字符放到不同的寄存器可以定義的,還有什么不清楚加我聯(lián)系方式。
WEIXIN:13914094585
我好像是
大波就是我
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 303 個(gè)
工控威望: 603 點(diǎn)
下載積分: 1392 分
在線時(shí)間: 491(小時(shí))
注冊(cè)時(shí)間: 2012-12-09
最后登錄: 2024-10-19
查看我好像是的 主題 / 回貼
2樓  發(fā)表于: 2017-09-18 19:50
引用
引用第1樓weijishanggu于2017-09-18 19:39發(fā)表的  :
你用的什么品牌的PLC?上位機(jī)的軟件如果不是很復(fù)雜可以重做個(gè),可以走自由協(xié)議通訊,發(fā)送不同的指令接受的字符放到不同的寄存器可以定義的,還有什么不清楚加我聯(lián)系方式。

上位機(jī)軟件很復(fù)雜,不考慮重新寫,而且也沒有源代碼。
我對(duì)三菱PLC熟悉一點(diǎn),請(qǐng)問一下三菱PLC走自由通訊,可以實(shí)現(xiàn)這樣的程序嗎?
weijishanggu
289019538@qq.com
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 51 個(gè)
工控威望: 889 點(diǎn)
下載積分: 612 分
在線時(shí)間: 79(小時(shí))
注冊(cè)時(shí)間: 2014-05-04
最后登錄: 2024-01-10
查看weijishanggu的 主題 / 回貼
3樓  發(fā)表于: 2017-09-18 20:03
可以的接受寄存器是不停刷新的,保存的都是最近接受的值,之前的會(huì)被覆蓋掉。
WEIXIN:13914094585
我好像是
大波就是我
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 303 個(gè)
工控威望: 603 點(diǎn)
下載積分: 1392 分
在線時(shí)間: 491(小時(shí))
注冊(cè)時(shí)間: 2012-12-09
最后登錄: 2024-10-19
查看我好像是的 主題 / 回貼
4樓  發(fā)表于: 2017-09-18 20:15
引用
引用第3樓weijishanggu于2017-09-18 20:03發(fā)表的  :
可以的接受寄存器是不停刷新的,保存的都是最近接受的值,之前的會(huì)被覆蓋掉。

難點(diǎn)在于,上下位機(jī)發(fā)送接收都是四組十六進(jìn)制數(shù)據(jù)(前面兩位數(shù)據(jù)相同),而且上下位機(jī)都在不停發(fā)送接收數(shù)據(jù)。
兄弟有沒有弄過這樣的程序?我對(duì)三菱PLC邏輯編程伺服控制啥都還可以,就是這個(gè)非標(biāo)準(zhǔn)通訊沒用過,完全不知道啥思路。
flyfeky
bilibili 工控貴族
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 881 個(gè)
工控威望: 1030 點(diǎn)
下載積分: 1979 分
在線時(shí)間: 687(小時(shí))
注冊(cè)時(shí)間: 2012-05-09
最后登錄: 2024-10-10
查看flyfeky的 主題 / 回貼
5樓  發(fā)表于: 2017-09-18 20:24
你先用RS232指令試試,測(cè)試幾個(gè)指令,通信上,再寫其它的。
如果是三菱PLC ,先試試232BD。
西門子倍福WPF+C#數(shù)據(jù)庫(kù),槽式設(shè)備專家
weijishanggu
289019538@qq.com
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 51 個(gè)
工控威望: 889 點(diǎn)
下載積分: 612 分
在線時(shí)間: 79(小時(shí))
注冊(cè)時(shí)間: 2014-05-04
最后登錄: 2024-01-10
查看weijishanggu的 主題 / 回貼
6樓  發(fā)表于: 2017-09-18 20:40
引用
引用第4樓我好像是于2017-09-18 20:15發(fā)表的  :

難點(diǎn)在于,上下位機(jī)發(fā)送接收都是四組十六進(jìn)制數(shù)據(jù)(前面兩位數(shù)據(jù)相同),而且上下位機(jī)都在不停發(fā)送接收數(shù)據(jù)。
兄弟有沒有弄過這樣的程序?我對(duì)三菱PLC邏輯編程伺服控制啥都還可以,就是這個(gè)非標(biāo)準(zhǔn)通訊沒用過,完全不知道啥思路。

你可以看看三菱的編程指令,那有詳細(xì)的說明,告訴你要發(fā)送的數(shù)據(jù)放哪接受的數(shù)據(jù)放哪,工控機(jī),PLC,通訊板啥的都搞過,都這樣
WEIXIN:13914094585
wlf2520
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 7 個(gè)
工控威望: 96 點(diǎn)
下載積分: 1787 分
在線時(shí)間: 97(小時(shí))
注冊(cè)時(shí)間: 2017-07-23
最后登錄: 2018-11-10
查看wlf2520的 主題 / 回貼
7樓  發(fā)表于: 2017-09-18 20:55
按照你的意思,上位機(jī)是死的,不能修改添加程序,而通訊是雙方的事,很好奇你如何去和啞巴通訊說話。或者用游戲的一個(gè)用語,外掛來解決?估計(jì)超神才可以完成吧。如果上位機(jī)加點(diǎn)點(diǎn)通訊段,那你的要求就是小菜一碟的事。
[ 此帖被18107889830在2017-09-18 21:01重新編輯 ]
zhuyikang
級(jí)別: 網(wǎng)絡(luò)英雄
精華主題: 0
發(fā)帖數(shù)量: 196 個(gè)
工控威望: 5892 點(diǎn)
下載積分: 9459 分
在線時(shí)間: 970(小時(shí))
注冊(cè)時(shí)間: 2011-04-26
最后登錄: 2024-08-26
查看zhuyikang的 主題 / 回貼
8樓  發(fā)表于: 2017-09-19 08:58
只能走自由通訊,可以實(shí)現(xiàn)。
不小心遇見你
自動(dòng)項(xiàng)目、PLC、視覺、通訊等工控軟件開發(fā)QQ3515716
級(jí)別: 工控俠客

精華主題: 3 篇
發(fā)帖數(shù)量: 2034 個(gè)
工控威望: 2951 點(diǎn)
下載積分: 25154 分
在線時(shí)間: 1422(小時(shí))
注冊(cè)時(shí)間: 2014-01-05
最后登錄: 2024-10-24
查看不小心遇見你的 主題 / 回貼
9樓  發(fā)表于: 2017-09-19 09:58
你的上位機(jī)如果不是走你的標(biāo)準(zhǔn)協(xié)議 而是自由協(xié)議
上位機(jī)程序是現(xiàn)成的? 固定了發(fā)送格式?
首先要知道上位機(jī)發(fā)送的數(shù)據(jù)格式 就知道是否走的標(biāo)準(zhǔn)協(xié)議  如果是自由協(xié)議 只能自己寫發(fā)送和接收程序了 如果交換數(shù)據(jù)多的話會(huì)累死人
幾條建議
如果協(xié)議是標(biāo)準(zhǔn)協(xié)議 比如 modbus TCPmodbus,canopen等 那么建議你使用一些指令方便的PLC,比如國(guó)產(chǎn)的信捷,麥格米特,國(guó)外的西門子等。一條指令搞定。
上位機(jī)程序自己做,僅是點(diǎn)單的數(shù)據(jù)交換 可以用VB做,如果數(shù)據(jù)交換量大,而且除了數(shù)據(jù)交換外,你的上位機(jī)還要進(jìn)行其他運(yùn)算的話 ,這就用到多線程,建議使用LBV和c#,否則你會(huì)遇到軟件假死現(xiàn)象。
項(xiàng)目、視覺、通訊QQ3515716
戇獅
廣州三能:自動(dòng)化設(shè)備制造 自動(dòng)化培訓(xùn)
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 367 個(gè)
工控威望: 486 點(diǎn)
下載積分: 1462 分
在線時(shí)間: 592(小時(shí))
注冊(cè)時(shí)間: 2010-08-06
最后登錄: 2024-10-22
查看戇獅的 主題 / 回貼
10樓  發(fā)表于: 2017-09-19 12:14
用三菱FX232全雙工。
接收到動(dòng)作命令就回應(yīng)動(dòng)作
沒有接收到動(dòng)作命令就定時(shí)發(fā)送死機(jī)信號(hào)
發(fā)送動(dòng)作命令時(shí)等待回應(yīng)信息,收到動(dòng)作回應(yīng)信息發(fā)送死機(jī)信號(hào)

不用管寫到哪個(gè)寄存器,寫到寄存器就是專用協(xié)議了。用監(jiān)控緩存區(qū)方式發(fā)送和判斷接收信息。

FX232參數(shù)以自由口設(shè)定,接收完成信號(hào)置位后,緩存區(qū)應(yīng)該可以得到接收的數(shù)據(jù),再轉(zhuǎn)移出來作判斷

顧慮一點(diǎn)就是怕PLC操作速度不夠電腦快而出現(xiàn)通訊失敗。單片機(jī)做肯定是比PLC快的
廣州夏譜  工控專家 林生 13602663187 專業(yè)自動(dòng)化設(shè)備開發(fā),全實(shí)操自動(dòng)化培訓(xùn)
sjbandmm
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 237 個(gè)
工控威望: 407 點(diǎn)
下載積分: 987 分
在線時(shí)間: 167(小時(shí))
注冊(cè)時(shí)間: 2008-08-23
最后登錄: 2024-05-22
查看sjbandmm的 主題 / 回貼
11樓  發(fā)表于: 2017-09-19 15:28
都知道發(fā)的是什么了,直接走自由口通訊就搞定了,國(guó)產(chǎn)、進(jìn)口都沒問題的。