汕頭西門子S7-200代理商潯之漫智控技術(shù)有限公司 上海詩慕自動化設(shè)備有限公司本公司銷售西門子自動化產(chǎn)品,*,質(zhì)量保證,價(jià)格優(yōu)勢西門子PLC,西門子觸摸屏,西門子數(shù)控系統(tǒng),西門子軟啟動,西門子以太網(wǎng)西門子電機(jī),西門子變頻器,西門子直流調(diào)速器,西門子電線電纜我公司大量現(xiàn)貨供應(yīng),價(jià)格優(yōu)勢,*,德國*
更新時(shí)間:2020-04-29
廠商性質(zhì): 總代理商
在線留言汕頭西門子S7-200代理商 汕頭西門子S7-200代理商
潯之漫智控技術(shù)有限公司 上海詩慕自動化設(shè)備有限公司
本公司銷售西門子自動化產(chǎn)品,*,質(zhì)量保證,價(jià)格優(yōu)勢
西門子PLC,西門子觸摸屏,西門子數(shù)控系統(tǒng),西門子軟啟動,西門子以太網(wǎng)
西門子電機(jī),西門子變頻器,西門子直流調(diào)速器,西門子電線電纜
我公司大量現(xiàn)貨供應(yīng),價(jià)格優(yōu)勢,*,德國*
先自我介紹一下,96年初中畢業(yè)進(jìn)入制糖企業(yè)當(dāng)電工,04年春由于單位效益不好決定不干了,于是南下在鄭州學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)工程師,以名成績結(jié)業(yè)。之后的一年多沒有從事電氣方面工作,也都不是長期穩(wěn)定的工作,06年下半年接觸PLC編程,07年開始獨(dú)立進(jìn)行電氣設(shè)計(jì),10年10月自己開公司。
從去年12月份到現(xiàn)在一直在做一個(gè)能源管理及設(shè)備監(jiān)控的項(xiàng)目,項(xiàng)目簡介:工廠內(nèi)所有用電量,壓縮空氣,水,這三種能源的消耗,已經(jīng)做好的十二臺由西門子200PLC控制的空調(diào)監(jiān)視,已經(jīng)做好的冷凍水,冷卻水,生產(chǎn)水,生活水等水循環(huán)系統(tǒng)內(nèi)的水泵變頻器的電參數(shù)監(jiān)視,今天要講的故事就是這一塊。再說一下還沒開始做的電能管理,所有電量表(有許多塊,具體數(shù)量還沒計(jì)算)都是已經(jīng)安裝好,并可以在上位機(jī)監(jiān)控的系統(tǒng),電量表和上位機(jī)都是北京愛博精電做的。所有的電量表都支持modbus通信,但是是通過串口服務(wù)器用以太網(wǎng)與上位機(jī)通信的。而我的系統(tǒng)內(nèi)是s73152PN,這就要求我用315用以太網(wǎng)讀取電量表modbus通信下的各項(xiàng)參數(shù)了,若7號之前完成通信,再寫篇關(guān)于此方面的文章。工程中除電纜橋及電纜的鋪設(shè)是我指導(dǎo)安裝,其它都是我獨(dú)自完成,包括柜子配線,電氣原理圖設(shè)計(jì),PLC編程,調(diào)試。
*近連續(xù)工作的好多天,每晚加班到八九點(diǎn),昨天給客戶的串口服務(wù)器柜子重新改造一下,是將7處新增加的電能表通過光纖轉(zhuǎn)485連接到串口服務(wù)器,恢復(fù)客戶原有的通信時(shí),晚上八點(diǎn)了,累壞了,所以今天休息,剛剛我的奶奶給我打電話祝我生日快樂,我都把自己生日給忘了。
下面正題:
簡介:客戶要求對變頻器的數(shù)據(jù)只監(jiān)不控。客戶所有的水泵變頻器都是丹弗斯VLTHVAC暖通空調(diào)系列變頻器,功率有大有小,共有29臺,但由于modbus通信上還有4臺冷水機(jī)組,1個(gè)冷凍水加藥站,這樣從站超過了32臺,怕通信不會成功,及其它方面原因,所以在設(shè)計(jì)之初就采用2臺224分開來進(jìn)行通信,一臺帶23臺變頻器及加藥站,一臺帶6臺變頻器及4臺冷水機(jī)組,每臺224再掛以太網(wǎng)模塊與上位機(jī)WinCC通信。從200的Micro'nPowerv1.3幫助上知道200的通信口通信距離為50米,所以設(shè)計(jì)之初就提料買了2臺西門子485中繼器,這樣實(shí)際電氣隔離。以前在網(wǎng)上看到過文章,多臺200通過通信口通信,沒使用電氣隔離造成200全部損壞,具體原因就不得而知了
實(shí)施過程:
1、由于以前沒有modbus通信經(jīng)驗(yàn),所以過程是非常的艱難。由于我一直用筆記本,沒有串口,怕調(diào)試時(shí)出現(xiàn)麻煩事,所以買了摩莎的UPort-1250IUSB轉(zhuǎn)雙串口,次買回來新的啊,指示燈就不好用,又換了一次。在現(xiàn)場把兩個(gè)串口連起來,使用Modscan32調(diào)試工具模擬modbus通信,通信成功,這樣有了一個(gè)大致的概念。
2、與現(xiàn)場抄表人員溝通(他們公司規(guī)定變頻器的運(yùn)行數(shù)據(jù)進(jìn)行抄錄),確定讀取變頻器的6個(gè)數(shù)據(jù),如下:
參數(shù)編號名稱單位轉(zhuǎn)換指數(shù)數(shù)據(jù)類型
1501運(yùn)轉(zhuǎn)時(shí)間0h74Uint32
1502千瓦時(shí)計(jì)數(shù)器0kWh75Uint32
1610功率[kW]0.00kW1int32
1613頻率0.0Hz-1Uint16
1614電動機(jī)電流0.00A-2int32
讀取變頻器的運(yùn)行狀態(tài)
線圈01
33控制未就緒控制就緒
34變頻器未就緒變頻器就緒
35慣性停止安全功能關(guān)閉
36無報(bào)警報(bào)警
37未使用未使用
38未使用未使用
39未使用未使用
40無警告警告
41不在參考值下在參考值下
42手動模式自動模式
43超出頻率范圍在頻率范圍內(nèi)
44已停止運(yùn)行
45未使用未使用
46無電壓警告電壓警告
47不在電流極限內(nèi)電流極限
48無熱警告熱警告
高低字節(jié)互換后,由高到低對應(yīng)線圈為48----33
關(guān)于丹弗斯modbus通信時(shí)寄存器地址上的問題。
通過在網(wǎng)上搜索,丹弗斯變頻在modbus通信時(shí),寄存時(shí)的地址要功能號乘以10減1。如,變頻器的頻率地址為1613就是1613乘以10減1等16129當(dāng)然這也造成了我后面的麻煩。這里假設(shè)你還不知道西門子200讀取時(shí)是只乘以10不用減1,這也坑了我一下。
節(jié)遞增指令I(lǐng)NC_B,這樣就可實(shí)現(xiàn)每次地址加1。程序修改后大小為9400左右。
下載后進(jìn)行通信,使用的速率為115200,無法通信,又是什么原因?用計(jì)算機(jī)串口在RS485中繼器網(wǎng)絡(luò)2上檢測不到數(shù)據(jù),網(wǎng)絡(luò)1連接的PLC,網(wǎng)絡(luò)1上有數(shù)據(jù)。一共兩個(gè)中繼器,互換一下看看吧,還是不好用。說一個(gè)這兩個(gè)中繼器,一個(gè)是朋友的工程余貨,一個(gè)是在淘寶上淘的二手(這里可以鄙視我一下)。兩個(gè)中繼器的接線,開關(guān)位置都沒問題,就是通信不上,原因還是待查。大膽的將CPU通信直接連入網(wǎng)絡(luò)2,發(fā)現(xiàn)PLC指令還是顯示從站無響應(yīng),因?yàn)榇藭r(shí)速率還是115200,全部改成9600試試吧,改成后全部都可以讀取啦。非常高興的說?,F(xiàn)在速率運(yùn)行在38400的速度上,輪詢23臺變頻的總時(shí)間在8秒左右,只監(jiān)不控可以了。
話說這樣就結(jié)束了嗎,還沒有??梢钥瓷厦孀冾l出來的數(shù)據(jù)不適合上位機(jī)監(jiān)視,所以要經(jīng)過數(shù)據(jù)轉(zhuǎn)換。我程序的形式是每次讀取一臺變頻器的數(shù)據(jù)傳出,再進(jìn)行整體的數(shù)據(jù)轉(zhuǎn)換,發(fā)現(xiàn)每次從地址23再地址1時(shí)全部變頻的數(shù)據(jù)會向后串一臺變頻器,就是地址1的數(shù)據(jù)是地址23的,只是一個(gè)周期。心里這應(yīng)該是程序中有些指令是多周期的導(dǎo)致數(shù)據(jù)還沒轉(zhuǎn)換完就讀取下一臺的數(shù)據(jù)了。接著改程序,改成每次讀取的數(shù)據(jù)傳出,再用sm0.0啟用數(shù)據(jù)轉(zhuǎn)換。不再有上述現(xiàn)象。
還沒結(jié)束,發(fā)現(xiàn)轉(zhuǎn)換后變頻器的頻率不正確,而從轉(zhuǎn)換前的數(shù)據(jù)是正確的??梢钥醋冾l器的頻率數(shù)據(jù)是Uint16,要變成浮點(diǎn)數(shù)才可以。原程序是將Uint16格式的VW傳出到VW,發(fā)現(xiàn)傳出后的VW里的數(shù)值就和前面的不一樣的,這個(gè)真的不知道為什么了,還請高手解答一下。如何解決的呢,我不再把數(shù)值傳出,傳送指令前要加根據(jù)從站地址接通的上升沿,我直接將Uint16格式轉(zhuǎn)換成雙整數(shù)DI,再轉(zhuǎn)換成浮點(diǎn)數(shù),
想著先用Modscan32調(diào)試工具讀取單臺變頻器試試吧,發(fā)現(xiàn)Modscan32不支持《1613乘以10減1》這么大的地址,這怎么辦?在網(wǎng)上找啊找,找到一個(gè)《CRC16自動計(jì)算軟件_MODBUS》軟件,通過計(jì)算出要發(fā)送的數(shù)據(jù)包,通過串口調(diào)試軟件發(fā)給變頻器,經(jīng)過幾次調(diào)試,通過轉(zhuǎn)換回傳回來的數(shù)據(jù),發(fā)現(xiàn)可以通過計(jì)算機(jī)串口與變頻器通信了。這時(shí)用的速率是變頻器的115200。
下面就開始在單臺PLC編程讀取變頻器頻率。
modbus的MBUS_MSG指令的Addr填寫16129,發(fā)現(xiàn)無法通信,仔細(xì)看那個(gè)網(wǎng)上的文檔才發(fā)現(xiàn)200不需要減1,于是改成16130,發(fā)現(xiàn)還是無法讀取,這是什么原因?又開始看各種資料。*后在Micro'nPowerv1.3里找到,《ModbusMaster協(xié)議庫支持超過9999的保持寄存器地址。地址范圍為400001-465536》,這樣16130肯定是超過9999了,改成416130后,可以通信了。
問題又來了。
這樣變頻器寄存器的地址就變成了運(yùn)轉(zhuǎn)時(shí)間415010千瓦時(shí)計(jì)數(shù)器415020功率416100,本來寄存器地址就不連續(xù),讀起來不方便,這回更是拆成了6個(gè)。唉,先編程再說吧。先編的是23臺變頻器224,編著編著發(fā)現(xiàn)編譯保存時(shí),輸出窗口出現(xiàn)一個(gè)警告,說程序太大14000多字節(jié),不適合224,當(dāng)時(shí)就哭了。想想也是23臺變頻器,每臺6條指令,再加上數(shù)值的處理,程序量很可觀啊,怎么辦,首先想到的是換226,付款訂226,226在快遞中的時(shí)候。想到了西門子的指針,想著把變頻器的從站地址放入V區(qū),再用指針去讀取V區(qū)里的變頻器的從站地址,讀到地址23就返回到1,這樣就6條讀取指令,可大大減小程序塊??墒侵羔樜覐膩頉]用過啊,于是看指令方面的知識,看看發(fā)現(xiàn)從站地址是字節(jié)型,心想能不能每讀完一臺變頻器的數(shù)據(jù)后,從站地址加1,就是字節(jié)型加上,發(fā)現(xiàn)STEP-7-MicroWIN沒有字節(jié)整數(shù)型運(yùn)算指令,無意中發(fā)現(xiàn)字節(jié)遞增指令I(lǐng)NC_B,這樣就可實(shí)現(xiàn)每次地址加1。程序修改后大小為9400左右。
下載后進(jìn)行通信,使用的速率為115200,無法通信,又是什么原因?用計(jì)算機(jī)串口在RS485中繼器網(wǎng)絡(luò)2上檢測不到數(shù)據(jù),網(wǎng)絡(luò)1連接的PLC,網(wǎng)絡(luò)1上有數(shù)據(jù)。一共兩個(gè)中繼器,互換一下看看吧,還是不好用。說一個(gè)這兩個(gè)中繼器,一個(gè)是朋友的工程余貨,一個(gè)是在淘寶上淘的二手(這里可以鄙視我一下)。兩個(gè)中繼器的接線,開關(guān)位置都沒問題,就是通信不上,原因還是待查。大膽的將CPU通信直接連入網(wǎng)絡(luò)2,發(fā)現(xiàn)PLC指令還是顯示從站無響應(yīng),因?yàn)榇藭r(shí)速率還是115200,全部改成9600試試吧,改成后全部都可以讀取啦。非常高興的說。現(xiàn)在速率運(yùn)行在38400的速度上,輪詢23臺變頻的總時(shí)間在8秒左右,只監(jiān)不控可以了。
話說這樣就結(jié)束了嗎,還沒有。可以看上面變頻出來的數(shù)據(jù)不適合上位機(jī)監(jiān)視,所以要經(jīng)過數(shù)據(jù)轉(zhuǎn)換。我程序的形式是每次讀取一臺變頻器的數(shù)據(jù)傳出,再進(jìn)行整體的數(shù)據(jù)轉(zhuǎn)換,發(fā)現(xiàn)每次從地址23再地址1時(shí)全部變頻的數(shù)據(jù)會向后串一臺變頻器,就是地址1的數(shù)據(jù)是地址23的,只是一個(gè)周期。心里這應(yīng)該是程序中有些指令是多周期的導(dǎo)致數(shù)據(jù)還沒轉(zhuǎn)換完就讀取下一臺的數(shù)據(jù)了。接著改程序,改成每次讀取的數(shù)據(jù)傳出,再用sm0.0啟用數(shù)據(jù)轉(zhuǎn)換。不再有上述現(xiàn)象。
還沒結(jié)束,發(fā)現(xiàn)轉(zhuǎn)換后變頻器的頻率不正確,而從轉(zhuǎn)換前的數(shù)據(jù)是正確的。可以看變頻器的頻率數(shù)據(jù)是Uint16,要變成浮點(diǎn)數(shù)才可以。原程序是將Uint16格式的VW傳出到VW,發(fā)現(xiàn)傳出后的VW里的數(shù)值就和前面的不一樣的,這個(gè)真的不知道為什么了,還請高手解答一下。如何解決的呢,我不再把數(shù)值傳出,傳送指令前要加根據(jù)從站地址接通的上升沿,我直接將Uint16格式轉(zhuǎn)換成雙整數(shù)DI,再轉(zhuǎn)換成浮點(diǎn)數(shù),再用浮點(diǎn)數(shù)乘以0.1,*后成功得到頻率。
相關(guān)產(chǎn)品