电竞比分网-中国电竞赛事及体育赛事平台

分享

S7-1200與邁凱諾變頻器進(jìn)行modbus RTU進(jìn)行通訊

 阿明哥哥資料區(qū) 2019-05-24
JZGKCHINA

一、組態(tài)PLC

打開博圖V15軟件,新建項(xiàng)目,進(jìn)行PLC的硬件組態(tài),在CPU的左側(cè)添加CM1241 modbusRTU通訊模塊。

二、組態(tài)通訊端口

雙擊CM1241 modbusRTU通訊模塊,在下方“RS422/485接口”選項(xiàng)下,點(diǎn)擊“端口組態(tài)”,右側(cè)設(shè)置如下:協(xié)議---自由口;操作模式--半雙工(RS4852線制模式;接收線路初始狀態(tài)--無;波特率--9600、奇偶校驗(yàn)--無、數(shù)據(jù)位--8/字符、停止位--1;其余默認(rèn);如圖1、圖2所示: 

圖1

圖2

三、設(shè)置CPU系統(tǒng)和時鐘存儲器

雙擊CPU,點(diǎn)擊“系統(tǒng)和時鐘存儲器”,點(diǎn)擊右側(cè)“啟用系統(tǒng)存儲器字節(jié)”和“啟用時鐘存儲器字節(jié)”,用于編程時使用首次掃描位和時鐘脈沖;如圖3

圖3

四、新建讀寫數(shù)據(jù)塊

新建讀寫全局?jǐn)?shù)據(jù)塊DB3、DB5,數(shù)據(jù)塊里新建數(shù)據(jù)類型為UINT的數(shù)組;如圖4

圖4

五、編寫modbusRTU初始化程序

在OB1里,編寫modbusRTU初始化程序,點(diǎn)擊右側(cè)“通信”--“通信處理器”--MODBUS(RTU)--Modbus_Comm_Load,拖拽到程序段1中,自動生成背景數(shù)據(jù)塊;

Modbus_Comm_Load模塊的引腳說明:

EN--使能端,一直使能;

REQ--只在第一次掃描周期為1,且必須是上升沿觸發(fā);

PORT--指定CM1241模塊的硬件標(biāo)識符(標(biāo)注方法:如圖7

BAUD--指定通訊波特率(9600);

PARITY--指定奇偶校驗(yàn)位(0--無校驗(yàn))

MB_DB--指向主站生成的背景數(shù)據(jù)塊的MB_DB參數(shù);

輸出引腳指定地址即可,如圖6

注意:在左側(cè)“程序塊”--“系統(tǒng)塊”--“程序資源”下拉列表中,雙擊Modbus_Comm_Load的背景數(shù)據(jù)塊,Modbus_Comm_Load_DB,修改第19MODE的數(shù)值,由默認(rèn)值修改為16#04;如圖8

0=全雙工(RS232;

1=全雙工(RS422)四線制模式(點(diǎn)對點(diǎn));

2=全全雙工(RS422)四線制模式(多點(diǎn)主站,CM PtPET200SP));

3=全全雙工(RS422)四線制模式(多點(diǎn)從站,CM PtPET200SP));

4=半雙工(RS485)二線制模式;

圖6

圖7

圖8

六、編寫主站程序(讀指令)

在OB1里,編寫modbusRTU主站程序,點(diǎn)擊右側(cè)“通信”--“通信處理器”--MODBUS(RTU)--Modbus_Master,拖拽到程序段2中,自動生成背景數(shù)據(jù)塊;

Modbus_Master模塊的引腳說明:

EN--使能端,一直使能;

REQ--上升沿觸發(fā);

MB_ADDR--從站地址;

MODE--讀或?qū)懼噶睿?span>0是讀指令,1是寫指令);

DATA_ADDR--從站的起始地址(需將從站的地址由16進(jìn)制轉(zhuǎn)換為10進(jìn)制,轉(zhuǎn)換成10進(jìn)制后,數(shù)據(jù)加1(因?yàn)閺恼镜刂肥菑?span>0開始的,而PLC的地址是從1開始的,所以要加1));

DATA_LAN--指定讀取的數(shù)據(jù)長度(即一下讀取幾個數(shù)據(jù));

DATA_PTR--指定讀取的數(shù)據(jù)存放到此數(shù)組中;

輸出引腳指定地址即可,如圖9

圖9

圖9程序解析:

從站地址:

1000--頻率給定(只寫);

1001--運(yùn)行頻率(只讀);

1002--母線電壓(只讀);

1003--輸出電壓(只讀);

1004--輸出電流(只讀);

1001H轉(zhuǎn)成10進(jìn)制是4097,4097+1=4098;

所以此程序就是用4號功能碼讀取從站地址為1的從4098(從站從4097)開始的4個數(shù)據(jù)(運(yùn)行頻率、母線電壓、輸出電壓、輸出電流),存放到數(shù)據(jù)塊_1(DB3)的第一個變量的數(shù)組里(對應(yīng)關(guān)系是一一對應(yīng)的,即DB3.DBW0是運(yùn)行頻率,DB3.DBW2是母線電壓,DB3.DBW4是輸出電壓,DB3.DBW6是輸出電流),也就是說在上位機(jī)或監(jiān)控里監(jiān)控時,只要寫DB3.DBW0、DB3.DBW2、DB3.DBW4、DB3.DBW6即可;

七、編寫主站程序(寫指令)

同第六項(xiàng)讀指令一樣,只是將MODE改為1即可;如圖10

圖10

圖10程序解析:

從站地址:

2000--變頻啟動停止指令(只寫);

2000地址=1:正轉(zhuǎn)運(yùn)行;

2000地址=2:反轉(zhuǎn)運(yùn)行;

2000地址=3:正轉(zhuǎn)點(diǎn)動;

2000地址=4:反轉(zhuǎn)點(diǎn)動;

2000地址=5:自由停機(jī);

2000地址=6:減速停機(jī);

2000地址=7:故障復(fù)位;

2000H轉(zhuǎn)成10進(jìn)制是8192,8192+1=8193

所以此程序就是用4號功能碼向從站地址為1的從8193(從站從48192)開始的1個數(shù)據(jù)寫數(shù)據(jù)(變頻器啟??刂疲娣诺綌?shù)據(jù)塊_2(DB5)的第一個變量的數(shù)組里(對應(yīng)關(guān)系是一一對應(yīng)的,即DB5.DBW0是啟停信號,即DB5.DBW0=1時變頻器正轉(zhuǎn),DB5.DBW0=6時變頻器減速停機(jī)),也就是說在上位機(jī)或監(jiān)控里寫命令時,只要將DB5.DBW0數(shù)值寫成0~7即可;

八、輪詢

當(dāng)一個CM 1241帶很多從站時,或者帶一個從站,但是一個從站里需要多次用到讀或?qū)懼噶顣r,就需要用輪詢的方式來讀寫,不能同時對多個Modbus_Master模塊進(jìn)行讀寫;

輪詢程序如圖11~圖16

圖11

圖12

圖13

圖14

圖15

圖16

九、運(yùn)行監(jiān)控畫面:

給定頻率32.6Hz

圖17

十、停機(jī)監(jiān)控畫面

給定頻率32.6Hz,停機(jī)指令6(減速停機(jī))

圖18

歡迎給作者打賞

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多