国产三级在线看完整版-内射白嫩大屁股在线播放91-欧美精品国产精品综合-国产精品视频网站一区-一二三四在线观看视频韩国-国产不卡国产不卡国产精品不卡-日本岛国一区二区三区四区-成年人免费在线看片网站-熟女少妇一区二区三区四区

儀器網(wǎng)(yiqi.com)歡迎您!

| 注冊2 登錄
網(wǎng)站首頁-資訊-話題-產(chǎn)品-評測-品牌庫-供應商-展會-招標-采購-知識-技術-社區(qū)-資料-方案-產(chǎn)品庫-視頻

問答社區(qū)

RS485通過modbus rtu協(xié)議通信和通過pc加載器協(xié)議通信

許此一生終難忘 2012-04-09 22:05:47 385  瀏覽
  •  

參與評論

全部評論(2條)

  • 006ww 2012-04-10 00:00:00
    沒看懂問題?。?

    贊(14)

    回復(0)

    評論

  • 木魚來了aCh2i 2012-04-17 00:00:00
    (一)、通訊口設置 DCB dcb; hCom=CreateFile("COM1",      GENERIC_READ|GENERIC_WRITE,      0,      NULL,      OPEN_EXISTING,      0,      NULL); if(hCom==INVALID_HANDLE_VALUE) {   MessageBox("createfile error,error"); } BOOL error=SetupComm(hCom,1024,1024); if(!error)   MessageBox("setupcomm error"); error=GetCommState(hCom,&dcb); if(!error)   MessageBox("getcommstate,error"); dcb.BaudRate=2400; dcb.ByteSize=8; dcb.Parity=EVENPARITY;//NOPARITY; dcb.StopBits=ONESTOPBIT; error=SetCommState(hCom,&dcb); (二)、CRC校驗碼計算 UINT crc void calccrc(BYTE crcbuf) { BYTE i; crc=crc ^ crcbuf; for(i=0;i<8;i++) { BYTE TT; TT=crc&1; crc=crc>>1; crc=crc&0x7fff; if (TT==1) crc=crc^0xa001; crc=crc&0xffff; } } (三)、數(shù)據(jù)發(fā)送 zxaddr=11;//讀取地址為11的巡檢表數(shù)據(jù) zxnum=10;//讀取十個通道的數(shù)據(jù) writebuf2[0]=zxaddr; writebuf2[1]=3; writebuf2[2]=0; writebuf2[3]=0; writebuf2[4]=0; writebuf2[5]=zxnum; crc=0xffff; calccrc(writebuf2[0]); calccrc(writebuf2[1]); calccrc(writebuf2[2]); calccrc(writebuf2[3]); calccrc(writebuf2[4]); calccrc(writebuf2[5]); writebuf2[6]=crc & 0xff; writebuf2[7]=crc/0x100; WriteFile(hCom,writebuf2,8,&comnum,NULL); (四)、數(shù)據(jù)讀取 ReadFile(hCom,writebuf,5+zxnum*2,&comnum,NULL);//讀取zxnum個通道數(shù)據(jù)可增加錯誤處理程序,如地址碼錯誤、CRC碼錯誤判斷、通訊故障處理等。 別外還有其他說明,請登陸聚英電子網(wǎng)--搜索--modbus rtu協(xié)議

    贊(12)

    回復(0)

    評論

熱門問答

RS485通過modbus rtu協(xié)議通信和通過pc加載器協(xié)議通信
 
2012-04-09 22:05:47 385 2
兩個不同PLC之間通過rs485(modbus RTU)通信的問題
我們實驗用了ABB ac500 pm592 ,與別人西門子的s7-200通過RS485進行通信,我是主,他做從 我用了AC500的cpu的com1,接的是2,3口, 兩邊的com設置都是9600波特率,8數(shù)據(jù)位,偶校驗,1停止位 主PLC程序如下: BLINK1(ENABLE:=TRUE , TIMELOW:=T... 我們實驗用了ABB ac500 pm592 ,與別人西門子的s7-200通過RS485進行通信,我是主,他做從 我用了AC500的cpu的com1,接的是2,3口, 兩邊的com設置都是9600波特率,8數(shù)據(jù)位,偶校驗,1停止位 主PLC程序如下: BLINK1(ENABLE:=TRUE , TIMELOW:=T#1s , TIMEHIGH:=T#1s , OUT=> ); COM_MOD_MAST_receive3( EN:=BLINK1.OUT , COM:=1 ,(*接口編號*) SLAVE:= 2,(*從站IP地址,變壓器作為MODBUS_RTU從站*) FCT:=03,(*讀N個字*) TIMEOUT:=1000, ADDR:=40001,(*要讀取的從站寄存器首地址MODBUS*) NB:=41 ,(*要讀取從站的數(shù)據(jù)個數(shù),對于位存取NB中規(guī)定位的個數(shù),對于字和雙字存取,在NB中規(guī)定字的個數(shù)*) DATA :=ADR(ETH_REC_DATA2) ,(*主站存儲區(qū)首地址,從從站讀取的數(shù)據(jù)放在該地址*) DONE=> , ERR=> , ERNO=>); xx:=COM_MOD_MAST_receive3.ERNO; IF COM_MOD_MAST_receive3.DONE=TRUE AND COM_MOD_MAST_receive3.ERR=FALSE THEN read3_success_num:=read3_success_num+1; IF read3_success_num>5000 THEN read3_success_num:=0; END_IF; END_IF; 但是程序一直沒有收到數(shù)據(jù),不知道是哪里錯了 能否給予解答? 有沒有相關的說明文件給予參考 展開
2017-09-29 20:36:06 760 2
Modbus RTU協(xié)議的控制器怎樣才能和一個CANopen協(xié)議的伺服電機通信?
我有一臺Modbus RTU協(xié)議的控制器,還有一個CANopen協(xié)議的伺服電機,我希望實現(xiàn)這兩個設備之間的通信,請問如何實現(xiàn)?
2016-05-22 08:53:58 575 1
PC 如何跟儀表通訊呢? 通過RS485 通訊協(xié)議modbus rtu VB6.0原代碼怎么寫呢?
 
2011-09-09 06:46:49 339 2
modbus rtu協(xié)議
儀表的modbus rtu 協(xié)議的保持寄存器地址是從40001,但是OPC軟件上的modbus rtu 協(xié)議卻是400001開始,我不知道怎么獲取儀表上的數(shù)據(jù),我軟件上我要怎么跟儀表地址對起來。
2011-12-24 07:10:01 637 4
力控組態(tài)軟件怎么和變頻器(ABB ACS350)通過modbus協(xié)議建立通信,很著急阿!
 
2011-01-06 20:54:59 602 3
請問有會用易控的嗎?怎么建立與s7200的I/O通信,通過modbus rtu協(xié)議?
 
2018-11-25 13:47:02 301 0
modbus rtu串口通信
公司買了一個溫度巡檢儀,功能有限,我想通過自己做的軟件來增強巡檢儀的功能,但對串口通信編程知之甚少。現(xiàn)通過監(jiān)控原程序得到以下數(shù)據(jù):write requests: 01 03 00 01 00 01 D5 CA 01 01 00 50 00 20 3D C3 01 03 00 60 00 10 44 18 read requests: 01 03... 公司買了一個溫度巡檢儀,功能有限,我想通過自己做的軟件來增強巡檢儀的功能,但對串口通信編程知之甚少。現(xiàn)通過監(jiān)控原程序得到以下數(shù)據(jù):write requests: 01 03 00 01 00 01 D5 CA 01 01 00 50 00 20 3D C3 01 03 00 60 00 10 44 18 read requests: 01 03 02 00 02 39 85 01 01 04 00 00 00 00 FB D1 01 03 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 AE 38 從中能不能翻譯出什么東西?? 后來我又根據(jù)已有資料及網(wǎng)上相關程序編寫了以下通訊程序: Private Sub Command1_Click() '發(fā)請求 Dim btSend(23) As Byte btSend(0) = &H1 '目標站號 btSend(1) = &H3 '功能碼 btSend(2) = &H0 'I0.0地址(0000)高字節(jié) btSend(3) = &H1 'i0.0地址(0000)低字節(jié) btSend(4) = &H0 '讀取個數(shù)高字節(jié) btSend(5) = &H1 '讀取個數(shù)低字節(jié) btSend(6) = &HD5 btSend(7) = &HCA btSend(8) = &H1 btSend(9) = &H1 btSend(10) = &H0 btSend(11) = &H50 btSend(12) = &H0 btSend(13) = &H20 btSend(14) = &H3D btSend(15) = &HC3 btSend(16) = &H1 btSend(17) = &H3 btSend(18) = &H0 btSend(19) = &H60 btSend(20) = &H0 btSend(21) = &H10 btSend(22) = &H44 btSend(23) = &H18 ComK3.Output = CVar(btSend) Dim btReceive As Variant With ComK3 Do DoEvents Loop Until .InBufferCount = 5 .InputLen = 30 btReceive = .Input Text1.Text = Hex$(btReceive(1)) Text2.Text = Hex$(btReceive(2)) Text3.Text = Hex$(btReceive(3)) Text4.Text = Hex$(btReceive(4)) ' Text5.Text = Hex$(btReceive(5)) 'Text6.Text = Hex$(btReceive(6)) ' Text7.Text = Hex$(btReceive(7)) ' Text8.Text = Hex$(btReceive(8)) ' Text9.Text = Hex$(btReceive(9)) ' Text10.Text = Hex$(btReceive(10)) ' Text11.Text = Hex$(btReceive(11)) ' Text12.Text = Hex$(btReceive(12)) ' Text13.Text = Hex$(btReceive(13)) ' Text14.Text = Hex$(btReceive(14)) ' Text15.Text = Hex$(btReceive(15)) ' Text16.Text = Hex$(btReceive(16)) ' End If End With End Sub Private Sub Form_Load() With ComK3 .CommPort = 1 .Settings = "9600,N,8,2" .InputMode = comInputModeBinary '二進制收發(fā) .InBufferSize = 512 .OutBufferSize = 512 If (Not .PortOpen) Then .PortOpen = True End With End Sub 能收到4個亂碼,應該是錯誤標示,原程序待CRC驗證,我驗證不出,所以先刪除了。期望大俠們幫我修改下程序 展開
2009-07-05 16:19:26 438 2
ModBus RTU通訊協(xié)議與ModBus通訊協(xié)議有什么區(qū)別
 
2012-03-21 05:57:00 535 5
ModBus RTU通訊協(xié)議與ModBus通訊協(xié)議有什么區(qū)別
 
2018-11-29 12:35:26 358 0
ModBus RTU通訊協(xié)議與ModBus通訊協(xié)議有什么區(qū)別
 
2017-12-15 04:24:24 477 1
Modbus TCP和Modbus Rtu協(xié)議的區(qū)別
 
2017-04-08 13:22:10 574 1
Modbus TCP和Modbus Rtu協(xié)議的區(qū)別
 
2016-09-21 03:10:16 543 1
Modbus TCP和Modbus Rtu協(xié)議的區(qū)別
 
2015-11-15 08:28:45 413 1
組態(tài)王 莫迪康 Modbus rtu 協(xié)議
我用虛擬串口加串口調(diào)試助手嘗試跟組態(tài)王通訊 收到的請求數(shù)據(jù)為02 04 00 08 00 01 B0 3B (02是設備地址 04是功能碼 功能是讀取一個輸入寄存器 00 08 是寄存器的地址 00 01 是寄存器數(shù)量 b0 3b 是crc 校驗位 ) 我響應是02 04 02 00 0a 7d 37 (02 是... 我用虛擬串口加串口調(diào)試助手嘗試跟組態(tài)王通訊 收到的請求數(shù)據(jù)為02 04 00 08 00 01 B0 3B (02是設備地址 04是功能碼 功能是讀取一個輸入寄存器 00 08 是寄存器的地址 00 01 是寄存器數(shù)量 b0 3b 是crc 校驗位 ) 我響應是02 04 02 00 0a 7d 37 (02 是設備地址 04 是功能碼 02 是字節(jié)數(shù) 00 0a 是數(shù)據(jù) 7d 37是校驗位 7d是低位 37 是高位) 我發(fā)送數(shù)據(jù)幀時 組態(tài)王的信息窗口一直提示通訊恢復 初始化失敗 如果我不發(fā)送數(shù)據(jù)時 就提示嘗試通訊失敗 求解決辦法 QQ754100974 展開
2013-03-24 21:58:36 592 2
力控組態(tài)軟件怎么和支持modbus協(xié)議的設備通信
 
2017-04-14 16:00:06 610 1
MODBUS下RTU協(xié)議ASCII協(xié)議之間的轉換
這里有一塊MODBUS卡只支持RTU協(xié)議,但是我這還有一個軟件只支持ASCII協(xié)議,SO...... 需要一個轉換工具,或者說是轉換程序,讓軟件能夠正常工作。萬分感謝。
2014-12-17 18:15:18 544 1
modbus通訊是用rtu協(xié)議還是ascii協(xié)議
 
2015-04-27 16:51:02 497 2
modbus rtu通信的一些問題
問題一:相關資料上說modbus rtu通信數(shù)據(jù)中每個字節(jié)包括” 1個起始位、8個數(shù)據(jù)位、 1個奇偶校驗位、1~2個停止位“,加起來每個字節(jié)就有12位了。不是一個字節(jié)只有8位的嗎? 問題二:無符號十六位二進制數(shù)據(jù)乘以100,再除以256,這個運算是起到什么作用呢?
2013-01-29 03:23:16 451 2

4月突出貢獻榜

推薦主頁

最新話題