一、海為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ù)雜的通訊功能,編程簡(jiǎn)單而程序簡(jiǎn)潔,無須再為通訊端口沖突、發(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)?01H│35H│01H│23H│76H│54H。
3、讀取短信命令:$AAR(CR) 功能:讀GSM模塊收到的數(shù)據(jù)。 語(yǔ)法結(jié)構(gòu):$AAR<CR> $ ——定義符(24H) R ——讀數(shù)據(jù)標(biāo)識(shí)符(52H) AA——2 位16 進(jìn)制數(shù)的模塊地址:從00 到FF。長(zhǎng)度2 字節(jié)。 (CR) ——(0DH) 響應(yīng): 有效響應(yīng):!AA(long) (data) (cr) 無效響應(yīng):?AA (cr) 沒有響應(yīng):語(yǔ)法錯(cuò)誤/通信失敗/地址錯(cuò)誤 !——有效響應(yīng)的定義符(21H) ?——無效響應(yīng)的定義符(3FH) AA——2 位16 進(jìn)制數(shù)的模塊地址,長(zhǎng)度2 字節(jié)。 (long) ——單字節(jié)數(shù)據(jù)的長(zhǎng)度最長(zhǎng)為FFH。00H 表示無數(shù)據(jù)。 (data)——以字節(jié)為單位的數(shù)據(jù),數(shù)據(jù)的長(zhǎng)度由(long)決定,內(nèi)容:字頭D7H + 1字節(jié)數(shù)據(jù)長(zhǎng)度UDL + 6字節(jié)源電話號(hào)碼STA + 數(shù)據(jù)UD + 6字節(jié)發(fā)送時(shí)間DATE UDL:接收到的除包頭D7H 以外總的數(shù)據(jù)長(zhǎng)度。包括STA,UD 和它本身的字節(jié)長(zhǎng)度,因STA 和 UDL 的字節(jié)長(zhǎng)度一般是固定的,即固定為1+6=7 個(gè)字節(jié),所以其長(zhǎng)度可由如下公式計(jì)算UDL 數(shù)值=1+6+UD 長(zhǎng)度。接收方收到的時(shí)間字節(jié)DATE 不包含在內(nèi) SOA:發(fā)送方的電話號(hào)碼,即源地址。 UD: 發(fā)送方發(fā)送的有效數(shù)據(jù)。其總長(zhǎng)度小等于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ā)送短信。 語(yǔ)法結(jié)構(gòu):$AAW(long)(data)(cr) $ ——定義符(24H) AA——2 位16 進(jìn)制數(shù)的模塊地址:從00 到FF。長(zhǎng)度2 字節(jié)。 W ——寫數(shù)據(jù)標(biāo)識(shí)符(57H) (long) ——單字節(jié)數(shù)據(jù)的長(zhǎng)度最長(zhǎng)為FFH。00H 表示詢問發(fā)送緩沖區(qū)是否空見9.5。 (data)——以字節(jié)為電位的數(shù)據(jù),數(shù)據(jù)的長(zhǎng)度由(long)決定,內(nèi)容:字頭D7H + 1字節(jié)數(shù)據(jù)長(zhǎng)度UDL + 6字節(jié)目的電話號(hào)碼STA + 數(shù)據(jù)UD UDL:要發(fā)送的除包頭D7H 以外總的數(shù)據(jù)長(zhǎng)度。包括STA,UD 和它本身的字節(jié)長(zhǎng)度,因STA 和 UDL 的字節(jié)長(zhǎng)度一般是固定的,即固定為1+6=7 個(gè)字節(jié),所以其長(zhǎng)度可由如下公式計(jì)算UDL 數(shù)值=1+6+UD 長(zhǎng)度。 STA:接收方的電話號(hào)碼,即目的地址。號(hào)碼需要進(jìn)行格式轉(zhuǎn)換。 UD: 您需要發(fā)送的有效數(shù)據(jù)。其總長(zhǎng)度小等于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:52H V1004:0DH
發(fā)短信命令放在“初始寄存器表”中(寄存器V1100-V1117),隨程序一起下載到PLC中。 V1100:24H V1101:00H V1102:00H V1103:57H V1104:0DH V1105:D7H V1106:0BH V1107:01H V1108:39H V1109:12H V1110:07H V1111:04H V1112:25H V1113:00H V1114: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指令,以配置方式輸入,如下圖:

|