|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
那位好心人能幫我一下,用PLC改一下CDT通訊程序 |
| 作者:gygabc 欄目:通信技術(shù) |
這是原來(lái)的MODBUS通訊程序 LD SM0.0 WDR LD SM0.0 //(SMB2自由端口接受字符緩沖區(qū))GYG MOVB SMB2, *RA_POINT //將接受的數(shù)據(jù)先存入接受緩沖區(qū) INCD RA_POINT //地址指針加一,指向下一個(gè)接受緩沖INCW RA_COUNT //接受數(shù)據(jù)計(jì)數(shù)器加一 LDB= VB315, VB2600 //地址相同 NOT //否則 MOVW +0, RA_COUNT //接受數(shù)據(jù)計(jì)數(shù)器清零 MOVD &VB2600, RA_POINT //地址指針指向第一個(gè)接受數(shù)據(jù)緩沖區(qū) CRETI //中斷結(jié)束 (從中斷程序有條件返回) LDW>= RA_COUNT, 16#08 //已經(jīng)接收到了8個(gè)字節(jié) //地址相同 S M21.0, 1 MOVW +0, RA_COUNT //接受數(shù)據(jù)計(jì)數(shù)器清零 MOVD &VB2600, RA_POINT //地址指針指向第一個(gè)接受數(shù)據(jù)緩沖區(qū) R M21.1, 2 NOT CRETI LD M21.0 AB= VB315, VB2600 //YAO CE AB= 16#03, VB2601 AB= 16#0, VB2602 AB= 16#0, VB2603 AB= 16#0, VB2604 AB= 16#48, VB2605 S M21.1, 1 R M21.0, 1 LD M21.0 AB= VB315, VB2600 //YAO XIN AB= 16#1, VB2601 AB= 16#0, VB2602 AB= 16#0, VB2603 AB= 16#0, VB2604 AB= 16#70, VB2605 S M21.2, 1 R M21.0, 1 NOT R M21.0, 1 LD M21.1 //有遙測(cè)命令產(chǎn)生 O M21.2 MOVB VB2606, VB2608 //高字節(jié)CRC,保存 MOVB VB2607, VB2609 //低字節(jié)CRC,保存 MOVB 16#0, VB2606 //準(zhǔn)備存儲(chǔ)結(jié)算后地結(jié)果 MOVB 16#0, VB2607 MOVD &VB2600, RA_POINT2 MOVW 16#06, VW1990 //計(jì)算數(shù)據(jù)的個(gè)數(shù)6個(gè) CALL SBR_17 //計(jì)算CRC校驗(yàn)碼 LD M21.1 AB= VB2606, VB2608 //計(jì)算的CRC校驗(yàn)碼高字節(jié)與接收到的高字節(jié)相同 AB= VB2607, VB2609 //計(jì)算的CRC校驗(yàn)碼低字節(jié)與接收到的低字節(jié)相同 MOVB VB315, VB2000 //傳送系統(tǒng)地址給模擬量發(fā)送緩沖區(qū) MOVD 16#0, VD2600 //清接收緩沖區(qū) MOVD 16#0, VD2604 LD M21.2 AB= VB2606, VB2608 //計(jì)算的CRC校驗(yàn)碼高字節(jié)與接收到的高字節(jié)相同 AB= VB2607, VB2609 //計(jì)算的CRC校驗(yàn)碼低字節(jié)與接收到的低字節(jié)相同 MOVB VB315, VB2000 //傳送系統(tǒng)地址給模擬量發(fā)送緩沖區(qū) MOVD 16#0, VD2600 //清接收緩沖區(qū) MOVD 16#0, VD2604 LD M21.1 O M21.2 NOT //沒有命令產(chǎn)生 MOVW +0, RA_COUNT //接受數(shù)據(jù)計(jì)數(shù)器清零 MOVD &VB2600, RA_POINT //地址指針指向第一個(gè)接受數(shù)據(jù)緩沖區(qū) R M21.0, 3 LD M21.1 //有遙測(cè)命令 則給出計(jì)算遙測(cè)量的地址指針,計(jì)算數(shù)據(jù)個(gè)數(shù) MOVD &VB2000, RA_POINT2 MOVW 16#4C, VW1990 //計(jì)算數(shù)據(jù)的個(gè)數(shù)76 MOVB 16#4E, VB1999 //發(fā)送數(shù)據(jù)的個(gè)數(shù)78 CALL SBR_17 XMT VB1999, 1 //自由端口發(fā)送GYG R M21.1, 1 CRETI LD M21.2 //有遙信命令 則給出計(jì)算遙信量的地址指針,計(jì)算數(shù)據(jù)個(gè)數(shù) MOVD &VB2500, RA_POINT2 MOVW 16#12, VW1990 //計(jì)算數(shù)據(jù)的個(gè)數(shù)18 MOVB 16#14, VB2499 |
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |