国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

S7-1200PLC Modbus通信踩坑記錄

這篇具有很好參考價值的文章主要介紹了S7-1200PLC Modbus通信踩坑記錄。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。


先放結(jié)論,兩個大坑:
1.數(shù)據(jù)地址加4萬或40萬,來幫助PLC確定Modbus功能代碼;
2.和某些設(shè)備通信時,需要給數(shù)據(jù)地址+1。

本文內(nèi)容:幫讀者找到通信失敗的原因,不是完整的教程。
硬件設(shè)備:CPU1212C,485通信模塊CM1241,Modbus從機(jī)(比如變送器,變頻器)。
編程軟件:TIA Portal

485接線

CM1241帶一個DB9接頭,接線按照 "3號管腳是485+,8號是485-"進(jìn)行,不要看AB。2根線就夠,不用接GND。
S7-1200PLC Modbus通信踩坑記錄

TIA Portal函數(shù)塊的選用

如下圖,函數(shù)區(qū)里有兩個MODBUS的文件夾,上面的帶(RTU)的和下面的那個。在使用的時候只用一個文件夾里的函數(shù),不要混用,而且兩組函數(shù)的用法不太一樣。

Modbus編程,大致步驟是先用MB_COMM_LOAD初始化,再用MB_MASTER將PLC作為主機(jī)向從機(jī)發(fā)起通信,具體做法可以網(wǎng)上搜到。新版函數(shù)需要設(shè)置背景數(shù)據(jù)塊 “Modbus_Comm_Load_DB”.MODE=4,表示485半雙工通信方式,算個小坑。
S7-1200PLC Modbus通信踩坑記錄

MODBUS標(biāo)準(zhǔn)幀結(jié)構(gòu)

Modbus數(shù)據(jù)幀的一般結(jié)構(gòu)是:
S7-1200PLC Modbus通信踩坑記錄
S7-1200PLC Modbus通信踩坑記錄
根據(jù)命令碼的不同,上面“數(shù)據(jù)內(nèi)容”會有不同的劃分。最常用的命令碼是03和06。03表示主機(jī)讀取從機(jī)里多個字(英文word)的數(shù)據(jù),一個字就是2個字節(jié)。03功能碼的示例:
S7-1200PLC Modbus通信踩坑記錄
06表示主機(jī)向從機(jī)寫入1個字的數(shù)據(jù):
S7-1200PLC Modbus通信踩坑記錄

疊加地址基數(shù)

MB_MASTER函數(shù)塊:
S7-1200PLC Modbus通信踩坑記錄
了解了幀結(jié)構(gòu)之后,如果直接把起始地址輸入到函數(shù)里,會通信失敗。這時候就需要看西門子的文檔了。

可以發(fā)現(xiàn),函數(shù)上不能直接輸入Modbus功能碼,而且多了一個MODE輸入??匆幌潞瘮?shù)的參數(shù)說明:
S7-1200PLC Modbus通信踩坑記錄
S7-1200PLC Modbus通信踩坑記錄
可見,需要通過指定MODE和數(shù)據(jù)地址,來間接的確定功能碼。上表種的“Modbus地址”就是數(shù)據(jù)地址。

在Modbus幀結(jié)構(gòu)里,數(shù)據(jù)地址一般是占用1個字,所以理論上地址可以是0~0xFFFF種的任意一個數(shù),最大值0xFFFF對應(yīng)十進(jìn)制的65535。

這時候直接輸入原始的數(shù)據(jù)地址就會出錯。比如在MODE=0的情況下,數(shù)據(jù)地址是2000,PLC就以為要讀取一個位;地址是30001,PLC以為要讀取一個字,完全混亂了。

為了避免混亂,正確做法是給數(shù)據(jù)地址加上一個“基數(shù)”,再輸入到函數(shù)。 具體加什么基數(shù)要看上面的表格。比如原地址是2000,想要把功能碼設(shè)為03,就要把MODE設(shè)為0,數(shù)據(jù)地址加4萬或40萬,變成42000或402000,讓PLC能根據(jù)MODE和地址,定位到功能碼03。PLC在實(shí)際發(fā)送的時候會自動減掉基數(shù)。

為什么有4萬和40萬兩個基數(shù)?根據(jù)前面的分析,原數(shù)據(jù)地址最大能到65535,這時候如果加4萬,變成105535,就超出表格里40001~49999的范圍了。如果加40萬,變成465535,正好在表格里40萬地址區(qū)間之內(nèi)。所以基數(shù)40萬適用于所有的Modbus從機(jī),4萬可以用于地址范圍比較小的設(shè)備。

根據(jù)情況,給地址加一

解決基數(shù)問題之后,還是一直報錯,直到看到一篇教程上說:
DATA_ADDR–從站的起始地址(需將從站的地址由16進(jìn)制轉(zhuǎn)換為10進(jìn)制,轉(zhuǎn)換成10進(jìn)制后,數(shù)據(jù)加1(因?yàn)閺恼镜刂肥菑?開始的,而PLC的地址是從1開始的,所以要加1)) ;
于是破案了。至于數(shù)據(jù)地址要不要加一,需要看具體設(shè)備的說明書。一般地址從個位數(shù)1開始的,就是已經(jīng)加過1了,可以直接用;從整數(shù)開始的就要自己加1。不確定就做個實(shí)驗(yàn)。

最后放兩個案例:

案例1:從力傳感器讀取重量值

查看變送器說明書:
S7-1200PLC Modbus通信踩坑記錄

現(xiàn)在想要讀取重量。
確定MODE: 是讀取操作,需要功能碼03,所以MODE設(shè)為0.
確定DATA_ADDR:
根據(jù)變送器說明書,數(shù)據(jù)的原地址是1.
根據(jù)變送器說明書,數(shù)據(jù)地址都在一萬以內(nèi),所以基數(shù)采用4萬或40萬都行。這里采用4萬,疊加后地址變?yōu)?0001. 而且這個數(shù)據(jù)地址不需要再加一了。
確定DATA_LEN: 重量數(shù)據(jù)占用4個字節(jié),所以DATA_LEN=2(字)。
通信成功后,數(shù)據(jù)會被放到DATA_PTR指向的PLC存儲空間。

案例2:變頻電機(jī)控制

查閱變頻器說明書:
S7-1200PLC Modbus通信踩坑記錄
現(xiàn)想要控制電機(jī)正轉(zhuǎn)運(yùn)行。
確定MODE: 是寫入操作,MODE=1。
確定DATA_ADDR: 數(shù)據(jù)原地址是2000H(16進(jìn)制),轉(zhuǎn)換為10進(jìn)制是8192。
觀察發(fā)現(xiàn),說明書上地址是從個位為0的整數(shù)開始的,所以地址要加1.
觀察發(fā)現(xiàn),變頻器上的數(shù)據(jù)地址范圍比較大,超過了1萬,所以統(tǒng)一加基數(shù)40萬。
綜上,輸入到PLC函數(shù)的數(shù)據(jù)地址是:400,000+8192+1=408,193.
確定DATA_LEN:命令信息占用1個字,所以DATA_LEN=1.
數(shù)據(jù)值 :在DATA_PTR指向的變量里,設(shè)置命令值0001。文章來源地址http://www.zghlxwxcb.cn/news/detail-442177.html

到了這里,關(guān)于S7-1200PLC Modbus通信踩坑記錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • S7-1200PLC 作為MODBUSTCP服務(wù)器通信(多客戶端訪問)

    S7-1200PLC 作為MODBUSTCP服務(wù)器通信(多客戶端訪問)

    S7-1200PLC作為MODBUSTCP服務(wù)器端通信編程應(yīng)用,詳細(xì)內(nèi)容請查看下面文章鏈接: ModbusTcp通信(S7-1200PLC作為服務(wù)器端)-CSDN博客 文章瀏覽閱讀239次。S7-200Smart plc作為ModbusTcp服務(wù)器端的通信S7-200SMART PLC ModbusTCP通信(ModbusTcp服務(wù)器)_s7-200 modbustcp-CSDN博客文章瀏覽閱讀2.3k次。 https://rxxw-con

    2024年02月01日
    瀏覽(29)
  • TIA博途中S7-1200進(jìn)行MODBUS TCP通信(作為服務(wù)器)的具體方法演示

    TIA博途中S7-1200進(jìn)行MODBUS TCP通信(作為服務(wù)器)的具體方法演示

    如下圖所示,打開TIA博途軟件,添加一個1200的PLC,并設(shè)置該P(yáng)LC的IP地址,這里以192.168.0.2為例進(jìn)行說明, 如下圖所示,打開OB1,在通信指令—其他中找到MB_SERVER,并拖拽到OB1中, MB_SERVER指令的具體使用方法可參考以下內(nèi)容( 管腳的功能定義 ): 如下圖所示,添加一個DB塊用

    2024年02月08日
    瀏覽(25)
  • S7-1200PLC與ABB機(jī)器人進(jìn)行PROFINET通信的具體方法和步驟詳解

    S7-1200PLC與ABB機(jī)器人進(jìn)行PROFINET通信的具體方法和步驟詳解

    1. TIA博途一側(cè)的配置: 當(dāng)我們安裝好RobotStudio軟件后,可以在以下的目錄中C:ProgramDataABB Industrial ITRobotics ITDistributionPackagesABB.RobotWare-6.08.0134RobotPackagesRobotWare_RPK_6.08.0134utilityserviceGSDML找到對應(yīng)的GSDML文件, 將該GSDML文件夾復(fù)制出來,放到自己創(chuàng)建的文件夾中,如下圖所示

    2023年04月19日
    瀏覽(21)
  • C++上位軟件通過LibModbus開源庫和西門子S7-1200/S7-1500/S7-200 PLC進(jìn)行ModbusTcp 和ModbusRTU 通信

    C++上位軟件通過LibModbus開源庫和西門子S7-1200/S7-1500/S7-200 PLC進(jìn)行ModbusTcp 和ModbusRTU 通信

    ? ? ? ? 一直以來上位軟件比如C++等和西門子等其他品牌PLC之間的數(shù)據(jù)交換都是大家比較頭疼的問題,尤其是C++上位軟件程序員。傳統(tǒng)的方法一般有OPC、Socket 等,直到LibModbus 開源庫出現(xiàn)后這種途徑對程序袁來說又有了新的選擇。 ??????? ? 1?)使用簡單, 利用MUDBUS庫文件

    2024年02月03日
    瀏覽(46)
  • OPC UA 開源庫編譯方法及通過OPC UA連接西門S7-1200 PLC通信并進(jìn)行數(shù)據(jù)交換

    OPC UA 開源庫編譯方法及通過OPC UA連接西門S7-1200 PLC通信并進(jìn)行數(shù)據(jù)交換

    ????????在現(xiàn)代工業(yè)自動化領(lǐng)域,OPC UA(開放性生產(chǎn)控制和統(tǒng)一架構(gòu))是一種廣泛應(yīng)用的通信協(xié)議。本文將以通俗易懂的方式解釋OPC UA的含義和作用,幫助讀者更好地理解這一概念。 一、OPC UA的定義 ????????OPC UA全稱為“開放性生產(chǎn)控制和統(tǒng)一架構(gòu)”。簡單來說,它是

    2024年01月20日
    瀏覽(29)
  • OPC UA 開源庫編譯方法及通過OPC UA連接西門S7-1200 PLC通信并進(jìn)行數(shù)據(jù)交換[一]

    OPC UA 開源庫編譯方法及通過OPC UA連接西門S7-1200 PLC通信并進(jìn)行數(shù)據(jù)交換[一]

    ????????在現(xiàn)代工業(yè)自動化領(lǐng)域,OPC UA(開放性生產(chǎn)控制和統(tǒng)一架構(gòu))是一種廣泛應(yīng)用的通信協(xié)議。本文將以通俗易懂的方式解釋OPC UA的含義和作用,幫助讀者更好地理解這一概念。 一、OPC UA的定義 ????????OPC UA全稱為“開放性生產(chǎn)控制和統(tǒng)一架構(gòu)”。簡單來說,它是

    2024年01月16日
    瀏覽(27)
  • S7-1200PLC的TCP/IP通訊

    S7-1200PLC的TCP/IP通訊

    圖1 TSEND_C指令 如圖是TSEND_C指令,它的作用是建立連接并發(fā)送數(shù)據(jù)。對于其中各個參數(shù)的作用如下表: 參數(shù) 說明 REQ 在上升沿啟動發(fā)送作業(yè) CONT 控制通信連接 CONNECT 指向連接描述結(jié)構(gòu)的指針 DATA 指向發(fā)送區(qū)的指針,該發(fā)送區(qū)包含要發(fā)送數(shù)據(jù)的地址和長度 DONE 狀態(tài)參數(shù),可表示發(fā)

    2024年04月10日
    瀏覽(23)
  • 通過modbus tcp 和臺達(dá)PLC通信測試記錄

    通過modbus tcp 和臺達(dá)PLC通信測試記錄

    安裝臺達(dá)梯形圖軟件 “WPLSoft” http://downloadcenter.delta-china.com.cn/DownloadCenter?v=1q=WPLsort_expr=cdatesort_dir=DESC 2.硬件連接 2.1 電腦網(wǎng)卡 連接PLC以太網(wǎng), IP設(shè)為192.168.1.x網(wǎng)段,PLC默認(rèn)IP為192.168.1.5. 2.2 PLC 供電24V, S/S輸入公共端接GND,UP0/ZP0輸出驅(qū)動電源的端口接GND / 24V 2.3 在 PLC X0輸入觸

    2024年02月08日
    瀏覽(27)
  • 西門子S7-1200與S7-300PLC的九大不同點(diǎn)

    西門子S7-1200與S7-300PLC的九大不同點(diǎn)

    S7-1200作為新推出的緊湊型控制器,其產(chǎn)品定位在原有的SIMATIC S7-200和S7-300之間,它與S7-300的區(qū)別主要體現(xiàn)在硬件、通信、工程、存儲器、功能塊、計(jì)數(shù)器、定時器、工藝功能等方面。 一、硬件的區(qū)別 在硬件擴(kuò)展方面,S7-300的主機(jī)架多支持八個擴(kuò)展模塊,而S7-1200支持?jǐn)U展多八

    2024年01月25日
    瀏覽(18)
  • 西門子PLC S7-1200如何實(shí)現(xiàn)遠(yuǎn)程上下載?

    西門子PLC S7-1200如何實(shí)現(xiàn)遠(yuǎn)程上下載?

    西門子S7-1200是一款高性能的PLC,具有模塊化、結(jié)構(gòu)緊湊、功能全面、編程簡單的特點(diǎn),總工業(yè)自動化領(lǐng)域中應(yīng)用廣泛,如貼片系統(tǒng)、傳送帶系統(tǒng)、污水處理廠、配電站、能源管理系統(tǒng)。 在使用過程,無論是為了減少現(xiàn)場調(diào)試的成本時間,還是為了給客戶提高更快更強(qiáng)的技術(shù)

    2024年02月12日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包