賞心悅目
級別: 論壇先鋒
|
我用一個條碼掃描器與一臺三菱2NPLC用RS指令通訊,監(jiān)控程序可以看到讀出來有數(shù)據(jù),但是跟實際的條碼值相差甚遠。我在這里就想請教下大家,條碼值一般有26個字母的大小寫和10個阿拉伯數(shù)字的組合,這個組合有長有短,三菱的一個數(shù)據(jù)寄存器比如D120可以存儲和顯示長達十幾位的條碼值嗎?還是只存儲一個值,其他值依次存到D121,D122,下面去呢?我監(jiān)控程序卻搞不懂其中的奧妙。還有,PLC讀出來的數(shù)據(jù)怎么樣轉(zhuǎn)換為有26個字母大小寫和10個阿拉伯數(shù)字的組合就是實際上的條碼值呢?然后在人機界面里顯示出來。 |
---|---|
|
xuyifu
級別: 略有小成
|
在用RS指令的時候是發(fā)送的一個數(shù)據(jù)幀,可以是讀或者寫數(shù)據(jù),你要讀掃描儀的條碼肯定要知道他的通訊協(xié)議,是專用的還是MODBUS 協(xié)議,然后要知道條碼的數(shù)據(jù)存儲區(qū)域地址以及數(shù)據(jù)類型和大小,然后才好用RS指令去讀取這個站址的條碼存儲區(qū)域地址的數(shù)據(jù),如果是兩個字則反饋的數(shù)據(jù)只要把這兩個字的類容顯示出來就好了,其他反饋的字不用去處理,仔細看看條碼儀的通訊協(xié)議的數(shù)據(jù)讀寫格式,和RS指令用法就行 |
---|---|
|
sjm213
有小知識,無大學(xué)問。
級別: 論壇版主
|
每個寄存器儲存1-2個字符,讀出來的數(shù)值要自己轉(zhuǎn)換為ASCII碼才能與條碼對應(yīng)上; 比如監(jiān)控為H36,它對應(yīng)ASCII碼的“6”,網(wǎng)上查詢ACSII碼對照表,看看與實際條碼的對應(yīng)關(guān)系 |
---|---|
本帖最近評分記錄: |
賞心悅目
級別: 論壇先鋒
|
描述:要讀取的條碼
圖片:
描述:電腦come口設(shè)置
圖片:
描述:電腦讀出來的結(jié)果
圖片:
描述:PLC程序
圖片:
描述:PLC通訊設(shè)置
圖片:
描述:PLC監(jiān)控結(jié)果
圖片:
描述:PLC監(jiān)控結(jié)果2
圖片: 謝謝版主的回復(fù),那請版主好人做到底,幫我看看我要怎么樣編這個程序,把條碼的實際值顯示出來呢!不勝感激!!! |
---|---|
|
sjm213
有小知識,無大學(xué)問。
級別: 論壇版主
|
從監(jiān)控結(jié)果來看,接收到的數(shù)據(jù)未能連續(xù)獲得,所以: 1.確認通訊設(shè)置與實際相符,尤其是波特率; 2.找掃碼器說明書,設(shè)置其通訊格式; 解決以上問題,將條碼全部讀入PLC中再討論程序問題。 |
---|---|
本帖最近評分記錄: |
sjm213
有小知識,無大學(xué)問。
級別: 論壇版主
|
你現(xiàn)在監(jiān)控到的值,換為16進制 D30中是 H33 4B------------------->ASCII 3K D31 H36 30------------------->ASCII 60 D32 H33 30------------------->ASCII 30 D33 H30 33------------------->ASCII 03 獲取的數(shù)據(jù)高位低位互換,再連起來就是K3060330;比實際條碼K130816033201位數(shù)是少的 |
---|---|
本帖最近評分記錄: |
賞心悅目
級別: 論壇先鋒
|
開眼了,版主,我對你佩服得五體投地啊,一直想學(xué)這方面的知識,但是網(wǎng)上查詢相關(guān)方面的知識實在過于籠統(tǒng),又太少,你這樣一說,明明白白啊!真的非常感謝你! |
---|---|
|
yamqq
雅馬哈,愛普生,電裝機器人。
級別: 網(wǎng)絡(luò)英雄
|
有回車符沒有? |
|
---|---|---|
|