我好像是
大波就是我
級別: 家園?
|
現(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ī)) 問題:請問一下這個(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è)是可以寫出來的嘛。 請各位大神提供一個(gè)思路,成功的,我發(fā)微信紅包哈。上位機(jī)發(fā)送接收格式內(nèi)容沒有辦法修改哎。這是死的。 |
---|---|
|
weijishanggu
289019538@qq.com
級別: 家園常客
|
你用的什么品牌的PLC?上位機(jī)的軟件如果不是很復(fù)雜可以重做個(gè),可以走自由協(xié)議通訊,發(fā)送不同的指令接受的字符放到不同的寄存器可以定義的,還有什么不清楚加我聯(lián)系方式。 |
|
---|---|---|
|
我好像是
大波就是我
級別: 家園?
|
上位機(jī)軟件很復(fù)雜,不考慮重新寫,而且也沒有源代碼。 我對三菱PLC熟悉一點(diǎn),請問一下三菱PLC走自由通訊,可以實(shí)現(xiàn)這樣的程序嗎? |
---|---|
|
weijishanggu
289019538@qq.com
級別: 家園?
|
可以的接受寄存器是不停刷新的,保存的都是最近接受的值,之前的會(huì)被覆蓋掉。 |
|
---|---|---|
|
我好像是
大波就是我
級別: 家園常客
|
難點(diǎn)在于,上下位機(jī)發(fā)送接收都是四組十六進(jìn)制數(shù)據(jù)(前面兩位數(shù)據(jù)相同),而且上下位機(jī)都在不停發(fā)送接收數(shù)據(jù)。 兄弟有沒有弄過這樣的程序?我對三菱PLC邏輯編程伺服控制啥都還可以,就是這個(gè)非標(biāo)準(zhǔn)通訊沒用過,完全不知道啥思路。 |
---|---|
|
flyfeky
bilibili 工控貴族
級別: 論壇先鋒
|
你先用RS232指令試試,測試幾個(gè)指令,通信上,再寫其它的。 如果是三菱PLC ,先試試232BD。 |
|
---|---|---|
|
weijishanggu
289019538@qq.com
級別: 家園常客
|
你可以看看三菱的編程指令,那有詳細(xì)的說明,告訴你要發(fā)送的數(shù)據(jù)放哪接受的數(shù)據(jù)放哪,工控機(jī),PLC,通訊板啥的都搞過,都這樣 |
|
---|---|---|
|
wlf2520
級別: 正式會(huì)員
|
按照你的意思,上位機(jī)是死的,不能修改添加程序,而通訊是雙方的事,很好奇你如何去和啞巴通訊說話;蛘哂糜螒虻囊粋(gè)用語,外掛來解決?估計(jì)超神才可以完成吧。如果上位機(jī)加點(diǎn)點(diǎn)通訊段,那你的要求就是小菜一碟的事。 [ 此帖被18107889830在2017-09-18 21:01重新編輯 ] |
---|---|
|
不小心遇見你
自動(dòng)項(xiàng)目、PLC、視覺、通訊等工控軟件開發(fā)QQ3515716
級別: 工控俠客
|
你的上位機(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,比如國產(chǎn)的信捷,麥格米特,國外的西門子等。一條指令搞定。 上位機(jī)程序自己做,僅是點(diǎn)單的數(shù)據(jù)交換 可以用VB做,如果數(shù)據(jù)交換量大,而且除了數(shù)據(jù)交換外,你的上位機(jī)還要進(jìn)行其他運(yùn)算的話 ,這就用到多線程,建議使用LBV和c#,否則你會(huì)遇到軟件假死現(xiàn)象。 |
|
---|---|---|
|
戇獅
廣州三能:自動(dòng)化設(shè)備制造 自動(dòng)化培訓(xùn)
級別: 略有小成
|
用三菱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快的 |
|
---|---|---|
|