控制器的MODBUS地址與其他廠家的觸摸屏地址映射關(guān)系有所不同。
⊙控制器的MODBUS地址從0開始,在與威綸觸摸屏通訊時,地址都是從0開始,所以是一一對應(yīng)。
控制器MODBUS_BIT(0)對應(yīng)威綸觸摸屏 MODBUS_0X_0,布爾型。
控在這里插入代碼片制器MODBUS_REG(0)對應(yīng)威綸觸摸屏 MODBUS_4X_0,字寄存器。
⊙在與昆侖通態(tài)觸摸屏通訊時,昆侖通態(tài)地址從1開始,控制器地址從0開始,所以觸摸屏地址加1。
控制器MODBUS_BIT(0) 對應(yīng)昆侖通態(tài)觸摸屏 MODBUS_0x_1,布爾型。
控制器MODBUS_REG(0) 對應(yīng)昆侖通態(tài)觸摸屏 MODBUS_4x_1,字寄存器 。
⊙控制器端程序可使用ZDevelop軟件支持的Basic語言或PLC梯形圖編程。
Basic語言中MODBUS_BIT(0)~ 對應(yīng)PLC梯形圖的M0~。
Basic語言中MODBUS_REG(0)~ 對應(yīng)PLC梯形圖的D0~。
3.控制器MODBUS寄存器
MODBUS通訊的數(shù)據(jù)使用MODBUS寄存器存儲,控制器的MODBUS寄存器符合MODBUS標(biāo)準(zhǔn)通訊協(xié)議,分為位寄存器和字寄存器兩類。
位寄存器:MODBUS_BIT,觸摸屏一般稱為MODBUS_0X,布爾型。
字寄存器:包含MODBUS_REG(16位整形)、MODBUS_LONG(32位整形)、MODBUS_IEEE(32位浮點形)、MODBUS_STRING(8位字節(jié)型),觸摸屏一般叫MODBUS_4X。
控制器中MODBUS字寄存器都占用同一片系統(tǒng)變量空間,其中一個LONG占用兩個REG地址,一個IEEE也占用兩個REG地址,使用時要注意錯開字寄存器編號地址。
⊙MODBUS_LONG(0)占用MODBUS_REG(0)與MODBUS_REG(1)兩個REG地址。
⊙MODBUS_LONG(1)占用MODBUS_REG(1)與MODBUS_REG(2)兩個REG地址。
⊙MODBUS_IEEE(0)占用MODBUS_REG(0)與MODBUS_REG(1)兩個REG地址。
⊙MODBUS_IEEE(1)占用MODBUS_REG(1)與MODBUS_REG(2)兩個REG地址。
所以要注意MODBUS_REG、MODBUS_LONG、MODBUS_IEEE地址在用戶應(yīng)用程序中不能重疊。
控制器的MODBUS存儲空間安排如下:
二、觸摸屏與控制器的連接方式
可選串口連接或網(wǎng)口連接。
1.網(wǎng)口連接
控制器出廠默認(rèn)IP地址為192.168.0.11,IP地址可在軟件“控制器狀態(tài)”窗口查看。使用IP_ADDRESS指令修改IP地址或在修改IP地址窗口修改,修改一次永久生效??刂破髦辽侔?個網(wǎng)口通道,網(wǎng)口的端口號為502,支持觸摸屏的MODBUS-TCP協(xié)議連接。
網(wǎng)口通道數(shù)查看
不同型號控制器支持的串口通道數(shù)和網(wǎng)口通道數(shù)不同。使用在線命令欄發(fā)送“?*port”查看通道數(shù),通道數(shù)確定了控制器能同時連接的設(shè)備個數(shù)。
在線命令欄發(fā)送“?*port_status”查看通訊端口是否已被使用。
當(dāng)前網(wǎng)口通道協(xié)議查看
使用PROTOCOL 指令返回當(dāng)前通道的通訊協(xié)議,根據(jù)返回值判斷。
2.串口連接
串口通??蛇xRS232串口或RS485串口,串口默認(rèn)參數(shù)為:波特率38400,數(shù)據(jù)位8,停止位1,校驗位無,采用SETCOM指令配置串口參數(shù)??刂破髦匦律想姾?,SETCOM參數(shù)會還原成默認(rèn)值,所以請在程序開頭寫SETCOM設(shè)置。控制器的所有串口的MODBUS協(xié)議站號ADDRESS為 1- 127,缺省=1。
串口MODBUS主從端選擇
SETCOM指令除了可以配置串口的通訊基本參數(shù)外,還可以選擇配置通訊協(xié)議,設(shè)置控制器為主端設(shè)備還是從端設(shè)備,還可以開啟自定義通訊模式(即mode=0無協(xié)議模式)。
語法:SETCOM
(baudrate,databits,stopbits,parity,port[,mode] [,variable] [,timeout])
mode參數(shù)選擇協(xié)議:與觸摸屏通訊時,mode參數(shù)選擇協(xié)議:4
Port0:setcom(9600,8,1,0,0,4,2,1000)
Port1:setcom(9600,8,1,0,1,4,2,1000)
串口掉電保持配置
SETCOM指令可選擇寄存器,默認(rèn)為MODBUS寄存器,可配置是否使用掉電保持寄存器存儲數(shù)據(jù)。
variable參數(shù)選擇寄存器:控制器出廠默認(rèn)選擇2,此時系統(tǒng)MODBUS寄存器與VR為兩片獨立區(qū)間。
variable參數(shù)選擇示例:
Port0:setcom(9600,8,1,0,0,4,2,1000)
三、控制器連接觸摸屏使用
使用的一般流程:
控制器端的程序使用ZDevelop軟件編寫完成下載到控制器內(nèi)。
觸摸屏端的程序使用對應(yīng)的編程軟件編寫完成后下載到觸摸屏保存。
程序下載完成之后,選擇串口或網(wǎng)口連接觸摸屏與控制器脫機運行。
四、控制器和威綸屏通訊實例
以控制器和威綸屏通訊為例展開觸摸屏的使用說明。
第一步:控制器端的程序使用ZDevelop軟件編寫完成下載到控制器內(nèi)。
第二步:下載觸摸屏程序。威綸觸摸屏端的程序使用EasyBuilder編程軟件編寫,程序編程完成后,打開“系統(tǒng)參數(shù)設(shè)置”窗口,如下圖。
1)添加要與觸摸屏連接的設(shè)備
設(shè)備列表里會顯示本機觸摸屏和本機設(shè)備,若有本機設(shè)備雙擊該行,若沒有本機設(shè)備,點擊“新建設(shè)備/服務(wù)器…”,彈出設(shè)備屬性窗口。
2)設(shè)置設(shè)備屬性
選擇設(shè)備類型,先選MODBUS IDA通訊協(xié)議,再根據(jù)觸摸屏與控制器的實際連接方式選擇。
串口通訊和網(wǎng)口通訊所選的設(shè)備類型不同,詳見后續(xù)說明。
若采用串口連接:
⊙設(shè)備類型:選擇模式MODBUS RTU(Zero-based Addressing)
⊙接口類型:選擇串口類型(RS485或RS232)
⊙COM:通訊端口設(shè)置匹配的波特率等參數(shù)
此時參數(shù)必須與連接到控制器的端口參數(shù)一致,設(shè)置完成確認(rèn)關(guān)閉系統(tǒng)參數(shù)設(shè)置窗口。
若采用網(wǎng)口連接:
⊙設(shè)備類型:選擇模式MODBUS TCP/IP(Zero-based Addressing)。
⊙接口類型自動改為以太網(wǎng)
⊙IP:填入當(dāng)前要連接的控制器的IP地址
設(shè)置完成確認(rèn)關(guān)閉系統(tǒng)參數(shù)設(shè)置窗口。
3)系統(tǒng)參數(shù)設(shè)置完成后,編譯寫好的組態(tài)程序,將觸摸屏連接到PC,待程序下載到觸摸屏后斷開連接。
第三步:連接觸摸屏與控制器,此時觸摸屏與控制器就可以相互通信了。
若沒有控制器或觸摸屏,可采用仿真器仿真,ZDevelop程序下載到仿真器內(nèi),EasyBuilder軟件的系統(tǒng)參數(shù)設(shè)置時選擇設(shè)備類型為MODBUS IDA—MODBUS TCP/IP(Zero-based Addressing),IP地址填入仿真器IP:127.0.0.1,選擇“在線模擬”即可連接控制器程序與組態(tài)程序進(jìn)行仿真。
五、通訊例程
1.觸摸屏端示例程序
威綸組態(tài)程序如下:
2.控制器端示例程序(basic示例程序)
控制器程序分為五個模塊:
1)初始化模塊:軸參數(shù)設(shè)置,變量定義,按鍵復(fù)位。
2)按鍵掃描模塊:按下啟動,停止,回零,保存數(shù)據(jù)觸發(fā)執(zhí)行相應(yīng)程序。
3)加工運動模塊:啟動按鍵按下調(diào)用執(zhí)行運動指令。
4)回零模塊:回零按鍵按下調(diào)用執(zhí)行軸回零。
5)手動運動模塊:手動觸發(fā)軸正向或負(fù)向點動。
A、程序任務(wù)分配情況
自動運行任務(wù)0:
若為串口連接設(shè)置SETCOM參數(shù)中的mode與variable
清空運動緩沖,各軸的初始化
自定義變量的初始化與FLASH讀取初始化變量
MODBUS_BIT/REG/IEEE相關(guān)變量的初始化
啟動
任務(wù)2作為
手動任務(wù)運行
循環(huán)掃描程序:
B、程序資源分配
自定義的MODBUS_BIT資源:
MODBUS_BIT(0) 啟動 按鈕
MODBUS_BIT(1) 停止 按鈕
MODBUS_BIT(4) 回零 按鈕
MODBUS_BIT(5) 保存數(shù)據(jù) 按鈕
MODBUS_BIT(10) X軸負(fù)向運動
MODBUS_BIT(11) X軸正向運動
MODBUS_BIT(20) Y軸負(fù)向運動
MODBUS_BIT(21) Y軸正向運動
MODBUS_BIT(1000) X軸 回零標(biāo)志
MODBUS_BIT(1001) Y軸 回零標(biāo)志
自定義的MODBUS_REG/LONG/IEEE資源:
MODBUS_REG(0) run_state 顯示運行狀態(tài)
MODBUS_IEEE(2) radius 顯示并設(shè)置加工半徑
MODBUS_IEEE(4) length 顯示并設(shè)置加工長度
任務(wù)資源:
任務(wù)0:初始化變量與任務(wù)2,主循環(huán)
不斷掃描外部變量來運行
任務(wù)1:由任務(wù)0啟動,自動程序用于加工
由任務(wù)0啟動,回零程序用于歸零
任務(wù)2 :由任務(wù)0啟動,用于手動掃描
用到的全局變量資源:
run_state 運行狀態(tài)
0停止,1運行,2回零
MODBUS_REG(0) 顯示
home_done 回零完成的標(biāo)志位
0 未回零,1 已回零
radius MODBUS_IEEE(2) 加工的半徑
length MODBUS_IEEE(4) 加工的長度
FLASH資源:
扇區(qū)0 radius,length
讀寫數(shù)據(jù)
用到的軸資源:
軸0:X軸
軸1:Y軸
VR資源:
無
中斷資源:
無
C、示波器采樣波形
任務(wù)1啟動,運行自動加工模塊,示波器采集的波形如下圖:
曲線0(紅色):軸0的目標(biāo)位置DPOS(0)
曲線1(紫色):軸1的目標(biāo)位置DPOS(1)