軟件:博途V15、Matlab2018b
非必須軟件:Modbus Poll(模擬Client端)、Modbus Slave(模擬Server端)
編程:梯形圖
此通信可分為Server端和Client端查坪。將數(shù)據(jù)被讀寫的端理解為Server端买决,進(jìn)行操控的端理解為Client端都伪。故這個PLC為Server端,Matlab部分為Client端荚斯。
Server端:
1.創(chuàng)建DataSend數(shù)據(jù)塊,用于matlab對其數(shù)據(jù)進(jìn)行讀寫(data1為Bool類型不能成功寫入)查牌。
2.右鍵單擊DataSend數(shù)據(jù)塊事期,在屬性里取消勾選優(yōu)化塊的訪問(很重要,不然數(shù)據(jù)無法使用絕對地址纸颜,數(shù)據(jù)無法通信)
3.創(chuàng)建全局?jǐn)?shù)據(jù)塊SEND作為TCON_IP_v4傳輸對象
在塊里創(chuàng)建SendObj兽泣,數(shù)據(jù)類型為TCON_IP_v4,該變量是ModBus TCP的通信描述胁孙。
變量的含義:
- InterfaceId:PLC的硬件標(biāo)識符
- ID:連接編號唠倦,取值范圍1~4095
- ADDR[1]~[4]:Client端的IP地址(參考適配器設(shè)置里PLC的那個網(wǎng)絡(luò)連接(非PLC自身IP))
-
LocalPort:Server的端口,一般Server端才需要設(shè)置涮较,Client端可采用默認(rèn)值(默認(rèn)用502)
4.編寫梯形圖
首先需要使用MB_SERVER指令
將其拉到程序段中并配置如下稠鼻,其中MB_HOLD_RGB接上要讀寫的數(shù)據(jù)塊(直接拉上去就行),CONNECT則連上通信描述狂票。
然后將程序下載到PLC中候齿。
可以監(jiān)控變量或者用比較指令編寫簡單梯形圖來看是否通信成功。
Matlab端:
代碼:
clear
clc
%創(chuàng)建modbus連接對象
m = modbus('tcpip','192.168.10.1',502); %IP地址為PLC硬件上的地址
%% modbus的讀取寫法:https://ww2.mathworks.cn/help/instrument/modbus.write.html
% read(m,target,address)
% read(m,target,address,count)
% read(m,target,address,count,serverId,precision)
% count這個參數(shù)要和數(shù)據(jù)個數(shù)保持一致,不然可能出錯
%% modbus的寫入寫法:https://ww2.mathworks.cn/help/instrument/modbus.read.html?searchHighlight=read%20modbus&s_tid=srchtitle
% write(m,target,address,values)
% write(m,target,address,values,serverId,'precision')
%% 讀寫Q端
% data3 = read(m,'coils',1,8)
% write(m,'coils',1,[0,0,0]);
%% 讀I端
% data2 = read(m,'inputs',1,8)
%% 讀寫保持寄存器(數(shù)據(jù)塊)里的內(nèi)容
%布爾值寫不進(jìn)去
data1 = read(m,'holdingregs',1,3) %第四個參數(shù)要和讀取的數(shù)據(jù)個數(shù)保持一致毛肋,不然可能出錯
write(m,'holdingregs',1,[1,1,1]);
clear m
運行此matlab代碼即可讀取出那3個數(shù)據(jù)当编,并且將[1,1,1]對應(yīng)的寫進(jìn)去,data1為Bool類型故寫不進(jìn)去震叮。
如果通信失斪晷摹:
PLC下載好程序后如果通信不上首先應(yīng)嘗試重啟PLC,然后再次通信孕讳。
如果還是不行可用Modbus Poll和Modbus Slave來調(diào)試
Modbus Slave使用:
在Connection里的Connection Setup可以創(chuàng)建連接匠楚,如下配置后點擊ok就啟動了
在Setup的Slave Definition里可以設(shè)置相關(guān)參數(shù)
Modbus Poll使用:
由于兩個軟件都是在本機(jī),故ip寫127.0.0.1
在Setup里的Read/Write Definition里設(shè)置如下厂财,注意相關(guān)參數(shù)要和Modbue Slave或者PLC的相對應(yīng)芋簿。
如果要用這個軟件修改PLC的數(shù)據(jù)需要在Functions里成組的修改,在界面單個修改無效璃饱。
總結(jié)
此為個人備忘筆記