PC與三菱PLC之間的RS232通訊協(xié)議.ppt_第1頁
PC與三菱PLC之間的RS232通訊協(xié)議.ppt_第2頁
PC與三菱PLC之間的RS232通訊協(xié)議.ppt_第3頁
PC與三菱PLC之間的RS232通訊協(xié)議.ppt_第4頁
PC與三菱PLC之間的RS232通訊協(xié)議.ppt_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

東莞圖冠智能科技有限公司 陳安標(biāo)交流QQ 458362670 PC與三菱PLC之間的RS232通訊協(xié)議 一 VC與PLC的串口通訊主要操作 1 對位元件和字元件狀態(tài)讀操作 操作對象元件 PLC內(nèi)部的X Y M S T C D元件命令通用格式 STXCMD0ADDLENEXTCHK意義 起始符讀命令元件起始位個數(shù)停止符校驗碼數(shù)字代碼格式 0X020X30 0X03 0 x30是讀操作指令 ADD是讀位元件或字元件的4位起始地址 高位先發(fā) 低位后發(fā) 以ASCII碼的格式發(fā)送 LEN是一次讀取位元件或字元件的個數(shù) 最多可以讀取0 xff個字節(jié)的元件 也是以ASCII碼的形式發(fā)送 CHK是兩位和校驗 將CMD0 ADD LEN EXT三項進行和累計 將和累計的最低兩位轉(zhuǎn)化成ASCII 高位先發(fā) 低位后發(fā) 在發(fā)完上述命令格式代碼后 就可以直接讀取PLC響應(yīng)返回的信息 響應(yīng)信息格式 STXDATAEXTCHK意義 起始符接收的數(shù)據(jù)停止符校驗碼數(shù)字代碼格式 0 x02 0 x03 DATA為我們需要讀取的數(shù)據(jù) 需要注意的是 讀取DATA數(shù)據(jù)時遵循低位先發(fā) 高位后發(fā)的原則 所以我們解析數(shù)據(jù)的時候需要注意高低位的轉(zhuǎn)換 CHK則為DATA EXT兩項的和累計的最后兩位轉(zhuǎn)化為ASCII 2 位元件和字元件狀態(tài)寫操作 操作對象元件 PLC內(nèi)部的XYMSTCU元件命令通用格式 STXCMD1ADDLENDATAEXTCHK意義 起始符讀命令元件起始位個數(shù)寫入的數(shù)據(jù)停止符校驗碼數(shù)字代碼格式 0X020X31 0X03 0 x031是寫操作指令 DATA是待寫入PLC緩沖區(qū)的數(shù)據(jù) 低位先發(fā) 高位后發(fā) 以ASCII碼的形式發(fā)送 其他和讀指令一樣 此處不再重復(fù) 發(fā)送后返回值為06 表示寫入成功 返回值為15 表示寫入失敗 二 IPC讀取PLC內(nèi)部數(shù)據(jù)時 首先將需要讀取的PLC內(nèi)部元件的地址找到 主要內(nèi)部元件地址如下 D m address 2 1000H T m address 00C0H C m address 2 01C0H S m address 3 M m address 2 0100H Y m address 00A0H X m address 0080H 只能讀不能寫 輸入寄存器必須由外部信號驅(qū)動 m address元件是指最低位開始后的第N個元件的位置 數(shù)據(jù)通訊舉例 例1 讀D0的值D0的內(nèi)部地址為1000H 31H30H30H30HLEN表示我們需要讀字節(jié)的個數(shù) 0 7為一個字節(jié) D0占兩個字節(jié) 所以LEN 30H32H 計算CHK校驗碼 CMD0 ADD LEN EXT 30H 31H 30H 31H 30H 30H 32H 03H 157H所以校驗碼為35H37H 得到完整的數(shù)字命令格式為 02H30H31H30H30H30H30H32H03H35H37H將這段數(shù)字代碼發(fā)送給PLC 返回代碼 02H30H30H30H30H03H43H33H得到數(shù)據(jù)段DATA為30H 31H 30H 30H 0001B 低位先發(fā) 高位后發(fā) 1D至此得到D0 1 完成IPC讀取PLC內(nèi)部數(shù)據(jù)的全部過程 IO通訊舉例 例2 讀取Y1的值Y1的內(nèi)部地址是00A0 30H30H41H30H 表示的意思是Y7 Y0的地址 Y1只是其中的一個位 LEN因為00A0只有一個字節(jié) 所以可以去LEN 01D 30H31H 計算CHK校驗碼 36H35H 得到完成的數(shù)字代碼為 02H30H30H30H41H30H30H31H03H36H35H 返回代碼 02H30H32H03H36H35H數(shù)據(jù)段為 30H32H 02D 0010B從Y7 Y0低往高排列可以知 Y1現(xiàn)在是狀態(tài)值為1 如果這里取LEN 2D 30H32H發(fā)送代碼 02H30H30H30H41H30H30H32H03H36H36H 返回代碼 02H30H32H30H30H03H43H35H數(shù)據(jù)段為 30H32H30H30H 0002B 低位先發(fā) 高位后發(fā) 2D從Y7 Y0低往高排列可以知 Y1現(xiàn)在是狀態(tài)值為1 注意 全部過程中 PLC內(nèi)部程序不需要做任何程序編寫 三 PLC讀取IPC數(shù)據(jù)時 數(shù)據(jù)通訊舉例 例1 PLC讀取IPC內(nèi)部參數(shù)X的值 思路 1 先將X的值轉(zhuǎn)化成數(shù)字代碼形式 2 再講X的值發(fā)送寫入PLC內(nèi)部數(shù)據(jù)寄存器中 3 然后PLC直接讀取這個數(shù)據(jù)寄存器的數(shù)據(jù) 設(shè) X 2 數(shù)據(jù)寫入PLC內(nèi)部數(shù)據(jù)寄存器D0中則DATA X 2 0010H 31H30H30H30H 低位先發(fā) 高位后發(fā) ADD 31H30H30H30H LEN 02D 30H32H D為10進制 H為16進制 CHK CMD1 ADD LEN DATA EXT 31H 31H 30H 30H 30H 30H 32H 31H 30H 30H 30H 03H 218H則校驗碼為 31H38H完整的數(shù)字代碼為 02H31H31H30H30H30H30H32H31H30H30H30H03H31H38H返回值為06表示寫入成功 PLC直接讀取D0里面的數(shù)據(jù)即可 完成PLC讀取IPC數(shù)據(jù) 當(dāng)然這只是即時的讀取 如果需要可控性的話 需要增加自定義讀取和發(fā)送標(biāo)志位 多加個數(shù)據(jù)用來表示控制字節(jié)用 IO通訊舉例 例2 IPC置位PLC內(nèi)部位元件Y1思路 1 確定Y1地址 讀操作已說明 2 就于寫入的原理 需要先讀取00A0的值 3 將讀取的值與0010進行寫入數(shù)據(jù) 00A0表示的是Y7 Y08個位 需要Y1為1 寫入00000010B 02H 但是LEN為2 表示2個字節(jié) 所以需要寫入0002H轉(zhuǎn)化為30H32H30H30H 低位先發(fā) 高位后發(fā) 完整代碼 02H31H30H30H41H30H30H32H30H32H30H30H03H32H39H返回 06寫入成功 四 數(shù)據(jù)通訊VC代碼編寫分析實例 例1 將IPC端3個數(shù)據(jù) X 1003 5 Y 4500 Z 3 1456寫入PLC中代碼編寫步驟 1 將XYZ分別轉(zhuǎn)化成整數(shù) 然后保存其小數(shù)位數(shù) 這里將XYZ分別都乘以10的N次方 直到其不在 32767 32767范圍后分別保存乘以10的個數(shù)在N1 N2 N3中 從而得到X 10035 N1 1 Y 4500 N2 0 Z 31456 N3 4 2 將X Y Z N1 N2 N3分別轉(zhuǎn)換成16進制 3 再轉(zhuǎn)化為16進制ASCII碼 4 將得到的16進制ASCII碼按照X N1 Y N2 Z N3的順序排列進counts 35 數(shù)組中 5 計算校驗碼 6 將數(shù)據(jù)counts 35 每個數(shù)轉(zhuǎn)化為對應(yīng)的兩個ASCII碼值保存于counts ascii 70 中 例如 35 轉(zhuǎn)化為 3 和 5 7 將ASCII碼轉(zhuǎn)化為字符串代碼保存于a2 70 累加排列輸出 例如 3 的字符串代碼為48 3 51 8 返回值06 表示寫入成功 例2 讀取PLC內(nèi)部數(shù)據(jù)X Y Z的值 讀取D0 D5的數(shù)據(jù) 代碼編寫步驟 思路與上例一樣 1 將固定讀取的數(shù)字代碼發(fā)送給PLC 固定讀取D0 D5的數(shù)字代碼為 02H30H31H30H30H30H30H43H03H36H37H2 發(fā)送成功后 則有數(shù)據(jù)信息反饋 不成功則返回15 3 將返回的窗口輸出字符串依次保存在字符串?dāng)?shù)組chars1 84 中 4 將數(shù)組s1轉(zhuǎn)化為數(shù)字保存在數(shù)據(jù)b中 類似 字符串?dāng)?shù)字51 3 5 將數(shù)組b轉(zhuǎn)為16進制ASCII 再轉(zhuǎn)化為10進制保存在數(shù)組c中 例如 3 5 3 10 5 35 再如 35H 5D 6 將數(shù)組c轉(zhuǎn)為2進制 方便判斷正負(fù)數(shù)和后期運算 保存在數(shù)值c2中 7 判斷正負(fù)數(shù) 設(shè)立標(biāo)志位flog 如果為負(fù)數(shù) 則將其二進制取反加1后轉(zhuǎn)化為10進

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論