- 返回 |
- 網(wǎng)站首頁
- / 解決方案
- / 自動(dòng)化解決方案
- / 國產(chǎn)PLC—Haiwell(海為)PLC與北京捷麥G100 GSM短信模塊通訊
一、海為PLC通訊特點(diǎn):
1、內(nèi)置多種通訊協(xié)議:Haiwell PLC各種型號(hào)的主機(jī)都內(nèi)置Modbus RTU/ASCII協(xié)議、自由通訊協(xié)議以及海為公司的HaiwellBus高速通訊協(xié)議;
2、通訊端口可擴(kuò)展:Haiwell PLC各種型號(hào)的主機(jī)均自帶2個(gè)通訊口(一個(gè)為RS-232,另一個(gè)為RS-485),用通訊擴(kuò)展模塊可擴(kuò)展至5個(gè)通訊口,每個(gè)通訊端口均可用于用于編程和聯(lián)網(wǎng),通訊端口相互獨(dú)立,均可作為主站也可作產(chǎn)從站;
3、極為便利的通訊指令系統(tǒng):使您無論使用何種通訊協(xié)議都只需一條通訊指令便可完成復(fù)雜的通訊功能,編程簡單而程序簡潔,無須再為通訊端口沖突、發(fā)送接收控制、通訊中斷處理等問題煩惱,可以在程序中混合使用各種協(xié)議輕松完成您所需的各種數(shù)據(jù)交換;
二、北京捷麥G100
GSM短信模塊通訊協(xié)議介紹
1、海為PLC與北京捷麥G100 GSM短信模塊的連接如下圖:
2、電話號(hào)碼的表示
數(shù)據(jù)包中用6 個(gè)8 位二進(jìn)制字節(jié)表示電話號(hào)碼,每個(gè)字節(jié)中高4 位和低4 位均用BCD 碼表示1 位十進(jìn)制的電話號(hào)碼,這樣每個(gè)字節(jié)可表示兩位電話號(hào)碼,6 個(gè)字節(jié)共可表示12 位電話號(hào)碼,因現(xiàn)行的電話號(hào)碼均為11 位,而6 字節(jié)能表示12 位十進(jìn)制的BCD 數(shù),所以在傳輸數(shù)據(jù)表示電話號(hào)碼時(shí)要將電話號(hào)碼的前面補(bǔ)0 以湊足12 位。
假設(shè)電話號(hào)碼是13501237654,轉(zhuǎn)換成6字節(jié)BCD 碼后變?yōu)?1H│35H│01H│23H│76H│54H。
3、讀取短信命令:$AAR(CR)
功能:讀GSM模塊收到的數(shù)據(jù)。
語法結(jié)構(gòu):$AAR
$ ——定義符(24H)
R ——讀數(shù)據(jù)標(biāo)識(shí)符(52H)
AA——2 位16 進(jìn)制數(shù)的模塊地址:從00 到FF。長度2 字節(jié)。
(CR) ——(0DH)
響應(yīng):
有效響應(yīng):!AA(long) (data) (cr)
無效響應(yīng):?AA (cr)
沒有響應(yīng):語法錯(cuò)誤/通信失敗/地址錯(cuò)誤
!——有效響應(yīng)的定義符(21H)
?——無效響應(yīng)的定義符(3FH)
AA——2 位16進(jìn)制數(shù)的模塊地址,長度2 字節(jié)。
(long)——單字節(jié)數(shù)據(jù)的長度最長為FFH。00H 表示無數(shù)據(jù)。
(data)——以字節(jié)為單位的數(shù)據(jù),數(shù)據(jù)的長度由(long)決定,內(nèi)容:字頭D7H + 1字節(jié)數(shù)據(jù)長度UDL + 6字節(jié)源電話號(hào)碼STA + 數(shù)據(jù)UD + 6字節(jié)發(fā)送時(shí)間DATE
UDL:接收到的除包頭D7H 以外總的數(shù)據(jù)長度。包括STA,UD 和它本身的字節(jié)長度,因STA 和 UDL 的字節(jié)長度一般是固定的,即固定為1+6=7 個(gè)字節(jié),所以其長度可由如下公式計(jì)算UDL 數(shù)值=1+6+UD 長度。接收方收到的時(shí)間字節(jié)DATE 不包含在內(nèi)
SOA:發(fā)送方的電話號(hào)碼,即源地址。
UD:發(fā)送方發(fā)送的有效數(shù)據(jù)。其總長度小等于140 個(gè)字節(jié)。
DATE:短信中心收到短信的時(shí)間,也就是發(fā)送方發(fā)送短信的時(shí)間。共6 個(gè)字節(jié)的BCD 碼,依次是年、月、日、時(shí)、分、秒。UDL 的數(shù)值并不包含這6 個(gè)字節(jié)。
(cr) ——(0DH)
例:假設(shè)讀取地址是00的G100模塊中的短信,模塊中的短信內(nèi)容為“1111”(31H│31H│31H│31H,共4個(gè)字節(jié)),發(fā)送方的電話號(hào)碼(源地址)是13912070425,發(fā)送時(shí)間是2003-08-12 13:21:21。
發(fā)送指令:$00R(cr)——24H│00H│00H│52H│0DH
模塊返回:21H│00H│00H│12H│D7H│0BH│01H│39H│12H│07H│04H│25H│31H│31H│31H│31H│03H│08H│12H│13H│21H│21H│0DH
4、發(fā)送短信命令:$AAW(long)
(data)
功能:發(fā)送短信。
語法結(jié)構(gòu):$AAW(long)(data)(cr)
$ ——定義符(24H)
AA——2 位16進(jìn)制數(shù)的模塊地址:從00 到FF。長度2 字節(jié)。
W ——寫數(shù)據(jù)標(biāo)識(shí)符(57H)
(long) ——單字節(jié)數(shù)據(jù)的長度最長為FFH。00H 表示詢問發(fā)送緩沖區(qū)是否空見9.5。
(data)——以字節(jié)為電位的數(shù)據(jù),數(shù)據(jù)的長度由(long)決定,內(nèi)容:字頭D7H + 1字節(jié)數(shù)據(jù)長度UDL + 6字節(jié)目的電話號(hào)碼STA + 數(shù)據(jù)UD
UDL:要發(fā)送的除包頭D7H 以外總的數(shù)據(jù)長度。包括STA,UD 和它本身的字節(jié)長度,因STA 和 UDL 的字節(jié)長度一般是固定的,即固定為1+6=7個(gè)字節(jié),所以其長度可由如下公式計(jì)算UDL 數(shù)值=1+6+UD 長度。
STA:接收方的電話號(hào)碼,即目的地址。號(hào)碼需要進(jìn)行格式轉(zhuǎn)換。
UD:您需要發(fā)送的有效數(shù)據(jù)。其總長度小等于140 個(gè)字節(jié)。
(cr) ——(0DH)
響應(yīng):無
例:假設(shè)通過地址是00的G100模塊發(fā)送短信“OK”(00H│4FH│00H│4BH共4個(gè)字節(jié)),接收方的電話號(hào)碼(目的地址)是13912070425
發(fā)送數(shù)據(jù)串如下:
24H│00H│00H│57H│0DH│D7H│0BH│01H│39H│12H│07H│04H│25H│00H│4FH│00H│0BH│0DH
三、海為PLC與北京捷麥G100 GSM短信模塊通訊程序
因?yàn)楸本┙蓰淕100 GSM短信模塊采用廠商自主通訊協(xié)議,所以海為PLC采用自由協(xié)議與其通訊,為了方便理解,將要發(fā)送是數(shù)據(jù)串按字節(jié)存放在寄存器中,以低字節(jié)模式發(fā)送即使用COMM.LB指令。
例子完成每100mS讀一次短信,如果收到正確的短信“0000”或“1111”則回復(fù)一條短信:
讀短信命令放在“初始寄存器表”中(寄存器V1000-V1004),隨程序一起下載到PLC中。
V1000:24H V1001:00H V1002:00H V1003:52HV1004:0DH
發(fā)短信命令放在“初始寄存器表”中(寄存器V1100-V1117),隨程序一起下載到PLC中。
V1100:24H V1101:00H V1102:00H V1103:57HV1104:0DH
V1105:D7H V1106:0BH V1107:01H V1108:39HV1109:12H
V1110:07H V1111:04H V1112:25H V1113:00HV1114:4FH
V1115:00H V1116:0BH V1117:0DH
要比較的短信內(nèi)容存在寄存器V1200-V1203中,如果短信內(nèi)容等于“1111”或“0000”則回復(fù)短信“OK”。
短信內(nèi)容“1111”:V1200:3131H V1201:3131H
短信內(nèi)容“0000”:V1202:3030H V1203:3030H
程序圖如下:
COMM自由通訊指令自帶通訊協(xié)議格式定義端子Protocol,可以通過雙擊COMM指令,以配置方式輸入,如下圖:
海為公眾號(hào)
海為云APP
廈門海為科技有限公司
0592-3278716 (技術(shù)) | 4000-360-362 (商務(wù))
海為總部:廈門市集美區(qū)軟件園三期C03棟13-14層 | 制造中心:廈門市翔安區(qū)火炬高新區(qū)(翔安)產(chǎn)業(yè)區(qū)垵邊南路336-2號(hào)4樓