當(dāng)前位置:機(jī)電之家首頁(yè) >> PLC技術(shù)>> PLC文案資料 >> plc教程 >> Twido及Micro Modbus多子站通訊程序方法
Twido及Micro Modbus多子站通訊程序方法

1.概述
  Modbus通訊協(xié)議是施耐德電氣開(kāi)發(fā)并對(duì)外完全公布其細(xì)節(jié)的開(kāi)放式通訊協(xié)議,得到眾多廠商的廣泛支持,從而有大量的第三方設(shè)備支持Modbus通訊,目前Modbus協(xié)議已經(jīng)成為事實(shí)上的工業(yè)通訊標(biāo)準(zhǔn),并被我國(guó)列為國(guó)標(biāo)之一。
  在目前工業(yè)控制中使用Modbus協(xié)議越來(lái)越普遍的情況下,一臺(tái)PLC與多臺(tái)支持Modbus協(xié)議的設(shè)備進(jìn)行通訊的應(yīng)用也成為目前的一種趨勢(shì),在這種應(yīng)用中通過(guò)一條或數(shù)條Modbus總線,連接多個(gè)設(shè)備,替代老式設(shè)備中的模擬量加數(shù)字量的控制方式,既能更加靈活地完成控制要求,又能節(jié)約大量的模擬量加數(shù)字量,從而降低設(shè)備的成本。
  雖然在PLC中對(duì)Modbus通訊編程非常簡(jiǎn)單,但如果在Modbus總線上有多個(gè)子站需要通訊時(shí),PLC中程序的篇幅會(huì)非常長(zhǎng),并占用很多PLC的內(nèi)部寄存器資源。

2 在施耐德電氣的PLC編程軟件中的更好的實(shí)現(xiàn)方法
  在這里以施耐德電氣的Twido系列PLC為例進(jìn)行介紹。基于編程語(yǔ)言的相似性,以下程序?qū)崿F(xiàn)方法在施耐德電氣的Micro及Premium系列PLC(PL7 Pro平臺(tái)下)很容易移植。
先看一下在Twido中實(shí)現(xiàn)與一個(gè)Modbus子站(以施耐德電氣的ATV31變頻器為例)通訊的程序段:



  在上面的示范程序中,主要為Modbus通訊所需的數(shù)據(jù)區(qū)填寫(xiě)相應(yīng)的內(nèi)容,詳細(xì)說(shuō)明請(qǐng)參考Twido的手冊(cè)或其幫助文件。
數(shù)據(jù)區(qū)準(zhǔn)備完成后需要用下面指令將該數(shù)據(jù)區(qū)發(fā)送出去:
 


  如果與多個(gè)Modbus子站通訊時(shí),就要編寫(xiě)多個(gè)與上述程序段長(zhǎng)度相同而內(nèi)容略有不同的程序段。在重復(fù)做這部分程序時(shí),使程序的篇幅大大加長(zhǎng),占用大量的內(nèi)部資源(如內(nèi)部字MW),并使得PLC的掃描周期加長(zhǎng),這樣一來(lái),使編程者需要考慮如何優(yōu)化這類的程序,使之更加簡(jiǎn)潔高效。
分析上面的通訊程序,會(huì)得到幾個(gè)提示:
1、 不同子站Modbus通訊的數(shù)據(jù)區(qū)除子站地址部分外是完全一樣的;
2、 數(shù)據(jù)區(qū)發(fā)送出去的交換指令格式是完全一樣的
3、 在某一時(shí)刻,PLC只能做一條讀或?qū)懖僮?廣播方式除外)
4、 讀操作讀回的數(shù)據(jù)在數(shù)據(jù)區(qū)起始位置的偏移量為6處開(kāi)始 (請(qǐng)參考相應(yīng)資料)

  從上面幾點(diǎn)分析著手,完全可以將與多個(gè)Modbus子站通訊優(yōu)化,只要處理好在某一時(shí)刻將要與之通訊的子站地址填寫(xiě)好,在通訊數(shù)據(jù)區(qū)用交換指令發(fā)送出去之后,及時(shí)將讀回來(lái)的數(shù)據(jù)取出并保存好即可。
  下面對(duì)實(shí)現(xiàn)這一功能的程序的部分程序段做一說(shuō)明,在這個(gè)程序中以讀施耐德電氣的3臺(tái)ATV31變頻器的狀態(tài)及輸出頻率,并通過(guò)通訊控制ATV31的運(yùn)行頻率。為減小本文的長(zhǎng)度,在這個(gè)程序ATV31的啟停及正反轉(zhuǎn)控制用端子實(shí)現(xiàn),在實(shí)際應(yīng)用中,用通訊完成變頻器的啟停及正反轉(zhuǎn)控制也是完全沒(méi)有問(wèn)題的。
與每一個(gè)子站通訊的時(shí)間長(zhǎng)度控制,其中M2由系統(tǒng)時(shí)鐘位S5產(chǎn)生:



在程序中需要使用一個(gè)計(jì)數(shù)器來(lái)控制PLC與某一臺(tái)ATV31的具體的通訊:
 


此計(jì)數(shù)器的作用在后面的程序中可以體現(xiàn)出來(lái)。

  填寫(xiě)通訊數(shù)據(jù)區(qū)中每個(gè)子站不相同的部分,這部分?jǐn)?shù)據(jù)必須存放兩個(gè)連續(xù)的數(shù)據(jù)區(qū)中,以使后面的數(shù)據(jù)取出程序能使用間接尋址的方式,這也是優(yōu)化程序的一個(gè)比較關(guān)鍵之處。
在這一例子程序中,將變頻器的輸出頻率值的控制簡(jiǎn)化了,使3臺(tái)變頻器的速度全部為30Hz,實(shí)際使用時(shí),可能參考后面的讀操作返回?cái)?shù)據(jù)的保存方式,運(yùn)用間接尋址方式編寫(xiě)出相應(yīng)的代碼:
 
 

根據(jù)調(diào)度計(jì)數(shù)器的當(dāng)前值,將與之對(duì)應(yīng)的子站數(shù)據(jù)調(diào)入(使用了間接尋址):
 


通訊數(shù)據(jù)區(qū)中相同部分的填寫(xiě)(注意其中MW202及MW232由上面程序完成了):
 


將通訊數(shù)據(jù)區(qū)用交換指令發(fā)送出去,MW481用來(lái)控制讀或?qū)懖僮鳎?BR> 


  下面是比較關(guān)鍵的一步,將通訊讀回的數(shù)據(jù)保存起來(lái),如1號(hào)變頻器的狀態(tài)及輸出頻率分別放在MW301及MW331中,2號(hào)變頻器數(shù)據(jù)放入MW302及MW332,3號(hào)變頻器數(shù)據(jù)放入MW303及MW333。
 


  程序中%MW206<>0處用來(lái)指定讀操作有正確返回?cái)?shù)據(jù)時(shí),才將相應(yīng)數(shù)據(jù)保存起來(lái);%MW481=1的處理是為防止與前一子站通訊的數(shù)據(jù)影響與下一子站的通訊數(shù)據(jù),同時(shí)配合%MW206<>0處的指令,使下一次與同一站點(diǎn)的通訊能地在有正確的返回?cái)?shù)據(jù)后才被保存。
下面為本程序的指令表,將之復(fù)制到一文本文件中,導(dǎo)入到Twidosoft新建的程序中,并將通訊端口配置好就可以正常使用。
  在我編寫(xiě)的一個(gè)由Twido PLC實(shí)現(xiàn)將22臺(tái)TeSysU馬達(dá)控制器的狀態(tài)及電流等數(shù)據(jù)上傳到上一級(jí)網(wǎng)絡(luò)的程序中,使用本文介紹的方法,可以使程序減小到用常規(guī)方式編寫(xiě)的程序的二十分之一,并使程序中使用的MW字的使用量減少為可以使程序減小到用常規(guī)方式編寫(xiě)的程序的二十分之一,同時(shí)使程序長(zhǎng)度大為減小,增加程序的可讀性,加快PLC的掃描周期,效果非常明顯。

(* 初始化,0.1秒及1秒脈沖產(chǎn)生   *)
LD    1
MPS
AND(  %S0
OR    %S1
OR    %S13
)
ST    %S0
ST    %M0
MRD
AND   %S4
ST    %M1
MRD
AND   %S5
ST    %M2
MPP
AND   %S6
ST    %M3
(* 單條通訊時(shí)間長(zhǎng)短控制 *)
BLK   %C0
LD    [ %C0.V >= %C0.P ]
R
LD    %M2
CU
END_BLK
(* 控制與PLC通訊的子站點(diǎn)及通訊類型的調(diào)度 *)
BLK   %C1
LD    [ %C1.V >= %C1.P ]
OR    %M0
R
LD    %C0.D
CU
END_BLK
(* 3臺(tái)VSD的讀的地址及讀命令 *)
LD    1
[ %MW401 := 16#0103 ]
[ %MW402 := 16#0203 ]
[ %MW403 := 16#0303 ]
(* 3臺(tái)VSD的寫(xiě)的地址及寫(xiě)命令   *)
LD    1
[ %MW431 := 16#0110 ]
[ %MW432 := 16#0210 ]
[ %MW433 := 16#0310 ]
(* 為便于簡(jiǎn)化說(shuō)明本程序,三臺(tái)VSD的LFR設(shè)為一樣,并只通過(guò)通訊控制VSD的LFR并不控制其運(yùn)行停止 *)
(* 如需要控制VSD的運(yùn)行,同樣通過(guò)間接尋址將控制值通過(guò)C0.V的值分別送入 *)
LD    1
[ %MW236 := 300 ]
(* 根據(jù)通訊分配計(jì)數(shù)器C0的值判定對(duì)通訊端口發(fā)送讀數(shù)據(jù)區(qū)或?qū)憯?shù)據(jù)區(qū)    *)
LD    1
[ %MW481 := %C1.V REM 2 ]
[ %MW482 := %C1.V / 2 ]
(* 根據(jù)通訊分配計(jì)數(shù)器C0的值對(duì)通訊端口發(fā)送讀數(shù)據(jù)區(qū)或?qū)憯?shù)據(jù)區(qū)寫(xiě)入地址信息   *)
(* MW481會(huì)決定發(fā)送讀還是寫(xiě)指令,所以在任意時(shí)間MW202與MW232的內(nèi)容一樣沒(méi)有影響  *)
LD    1
MPS
AND   [ %MW481 = 0 ]
[ %MW202 := %MW401[%MW482] ]
MPP
AND   [ %MW481 = 1 ]
[ %MW232 := %MW431[%MW482] ]
(* 讀不同站號(hào)的VSD的ETA及RFR數(shù)據(jù)區(qū)相同部分 *)
LD    1
[ %MW200 := 16#0106 ]
[ %MW201 := 16#0300 ]
[ %MW203 := 16#0C81 ]
[ %MW204 := 2 ]
(* 寫(xiě)不同站號(hào)的VSD的LFR數(shù)據(jù)區(qū)相同部分   *)
LD    1
[ %MW230 := 16#010A ]
[ %MW231 := 16#0007 ]
[ %MW233 := 16#2136 ]
[ %MW234 := 16#0001 ]
[ %MW235 := 16#0002 ]
(* 通訊,STAT作通訊狀態(tài)指示,可去掉   *)
LD    1
MPS
AND   %MSG2.D
MPS
AND   [ %MW481 = 0 ]
[ EXCH2 %MW200:9 ]
MPP
AND   [ %MW481 = 1 ]
[ EXCH2 %MW230:10 ]
MPP
ANDN  %MSG2.D
ST    %S69
(* 得到3臺(tái)VSD的ETA及RFR         *)
LD    1
MPS
AND   [ %MW481 = 0 ]
AND   [ %MW206 <> 0 ]
[ %MW301[%MW482] := %MW207 ]
[ %MW331[%MW482] := %MW208 ]
MPP
AND   [ %MW481 = 1 ]
[ %MW205:4 := 0 ]

作者:未知 點(diǎn)擊:1313次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:Twido及Micro Modbus多子站通訊程序方法
* 由于無(wú)法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《Twido及Micro Modbus多子站通訊程序方法》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊(cè)
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個(gè)人求購(gòu)

吳小姐 【求購(gòu)】  粉碎機(jī)  2025-12-5
 【求購(gòu)】  冶煉用的重...  2025-12-5
柳女士 【求購(gòu)】  斷路器  2025-12-5
林志揚(yáng) 【求購(gòu)】  無(wú)石棉墊片  2025-12-4
張一帆 【求購(gòu)】  首件測(cè)試儀  2025-12-4
王飛 【求購(gòu)】  gf流量計(jì)  2025-12-4
 【求購(gòu)】  全自動(dòng)印刷...  2025-12-4
 【求購(gòu)】  LED屏  2025-12-3
VIP公司推薦