網(wǎng)上搜到的:
創(chuàng)新互聯(lián)公司是一家專(zhuān)注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃、小程序定制開(kāi)發(fā)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開(kāi)發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十載以來(lái),已經(jīng)為上千家混凝土泵車(chē)各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)。現(xiàn)在,服務(wù)的上千家客戶(hù)與我們一路同行,見(jiàn)證我們的成長(zhǎng);未來(lái),我們一起分享成功的喜悅。
pc從西門(mén)子plc讀取數(shù)據(jù)的方法有兩類(lèi):
1是通過(guò)wincc這類(lèi)組態(tài)軟件
2是自己用高級(jí)語(yǔ)言(vb、vc等等),方法主要有:
opc(西門(mén)子simaticnet opc、第三方kepware opc)
prodave(西門(mén)子的一個(gè)軟件包,提高vb和c的通訊函數(shù)庫(kù))
simticnet軟件提供了幾個(gè)通訊dll(此法是一般的第三方scada所采用)
可以用其他組態(tài)軟件,比如組態(tài)王。也可以用vb編寫(xiě)一程序然后從plc讀取數(shù)據(jù)再寫(xiě)入數(shù)據(jù)庫(kù)。如果不需要監(jiān)控畫(huà)面,我覺(jué)得vb好些。
12601, 轉(zhuǎn)換成16進(jìn)制是3139,16進(jìn)制 ASC嗎31對(duì)應(yīng)字符1, 39對(duì)應(yīng)9。 后面的用這個(gè)思路去轉(zhuǎn)換就對(duì)上了。
0001 2569這兩個(gè)應(yīng)該是和格式相關(guān)的字符。0001一般就是開(kāi)始的意思。
一個(gè)變量包含兩個(gè)字符,轉(zhuǎn)換算法如下。
1。 取高位字符,除以H100, H是VB中16進(jìn)制表示法。 除以H100效果是右移8位。 位了保險(xiǎn)起見(jiàn),再和H00FF做與運(yùn)算,保證取得的ASC碼是合法的。
2。取低位字符,與H00FF做與運(yùn)算,去掉高位數(shù)據(jù),剩下的就是低位ASC碼。
3。將ASC碼轉(zhuǎn)換為字符,用CHR函數(shù)即可,然后連接所有的字符即可得String
a = (":010612000020C70D0A")'這里肯定有問(wèn)題
括號(hào)必須在引號(hào)里面,不然編譯不過(guò)的
你的問(wèn)題是沒(méi)有發(fā)送確認(rèn)符,一般串口指令末尾都有換行確認(rèn)符vbCr,下位機(jī)接收到vbCr后才認(rèn)為是一條完整指令,改成下面的試驗(yàn)
Dim a As String = ":010612000020C70D0A" vbCr
這個(gè)圈里的是通訊過(guò)程中傳送的Asc碼,包含了PLc的站號(hào)地址、指令、起始符等內(nèi)容,具體要看你的PLc通訊協(xié)議。通訊與開(kāi)關(guān)量是兩回事,你得補(bǔ)習(xí)下與通訊相關(guān)的內(nèi)容。