6ES7953-8LM31-0AA0遼陽(yáng)西門(mén)子代理商 6ES7953-8LM31-0AA0遼陽(yáng)西門(mén)子代理商
SIEMENS長(zhǎng)沙奈歐自動(dòng)化設(shè)備有限公司
我公司理西門(mén)子全系列產(chǎn)品歡迎
來(lái)電 電話(huà):13762110473(微信同步)
長(zhǎng)沙奈歐自動(dòng)化設(shè)備有限公司
聯(lián)系人:劉文秀(銷(xiāo)售經(jīng)理)
商務(wù)QQ:1533714462
”信譽(yù),客戶(hù)至上“是公司成立之初所確立的宗旨,在公司的嚴(yán)格要求和員工們不折不扣地貫徹執(zhí)行下發(fā)展延續(xù)至今?!凹僖涣P十”一直是我公司的承諾。
【信譽(yù)、誠(chéng)信交易】【長(zhǎng)期銷(xiāo)售、】
【稱(chēng)心滿(mǎn)意、服務(wù)動(dòng)力】【真誠(chéng)面對(duì)、溝通無(wú)限】
我公司長(zhǎng)期銷(xiāo)售西門(mén)子PLC模塊6ES7331-7KF02-0AB0 6ES7321-1BL00-0AA0 6ES7322-1BL00-0AA0 6ES7332-5HF00-0AB0 6ES7153-1AA03-0xB0 6XV1830-0EH10電纜 6ES7972-0BA12-0xA0接頭 6GK1503-3CB00光纖鏈路模塊 6ES7307-1EA00-0AA0 6ES7953-8LJ30-0AA0內(nèi)存卡 西門(mén)子PLC模塊315-2DP 6ES7315-2AH14-0AB0 西門(mén)子PLC模塊6ES7315-2EH14-0AB0 西門(mén)子PLC模塊6ES7214-2BD23-0xB8 處理6GK7343-1EX30-0xE0 屏66643-0CD01-1AX1 銷(xiāo)售西門(mén)子6SN1145-1BA02-0CA2
手機(jī):13762110473
公司地址:長(zhǎng)沙市岳麓區(qū)天頂街道尖山安置公寓樓702
———————————————————————————————————
【服務(wù)、一諾千金】【承諾、客戶(hù)滿(mǎn)意】
24小時(shí)西門(mén)子PLC銷(xiāo)售:13762110473微信同步
西門(mén)子總公司-長(zhǎng)沙奈歐伺服公司經(jīng)營(yíng)西門(mén)子全新原裝現(xiàn)貨PLC;S7-200S7-300 S7-400 S7-1200 屏,變頻器,6FC,6SN,S120 G120C V90 V80伺服數(shù)控備件:原裝進(jìn)口電機(jī)(1LA7、1LG4、1LA9、1LE1),國(guó)產(chǎn)電機(jī)(1LG0,1LE0)大型電機(jī)(1LA8,1LA4,1PQ8)伺服電機(jī)(1PH,1PM,1FT,1FK,1FS)西門(mén)子全新原裝產(chǎn)品‘質(zhì)保一年。 西門(mén)子伺服驅(qū)動(dòng)器現(xiàn)貨
描述
圖. 01
"RDSYSST" 指令的輸入/輸出
SSL_ID=w#16#37: 讀取 S7-300 CPU 的 IP 地址
INDEX=w#16#0: 讀取 S7-300 CPU 的 IP 地址
表 02 "RDSYSST"指令的輸出參數(shù)
SZL_HEADER 結(jié)構(gòu)體
SZL_HEADER: STRUCT
LENTHDR 是SSL 部件列表或 SSL 部件目錄的數(shù)據(jù)記錄長(zhǎng)度。
SSL 部件列表的目標(biāo)區(qū)域或讀取 SSL 部件列表的目錄
如果你已經(jīng)讀取到 CPU 的 IP 地址,可在程序中評(píng)估。在本例中,IP 地址按照十進(jìn)制數(shù)據(jù)保存在數(shù)據(jù)塊 DB1 “DATA”的起始地址 8 中。
下載
描述:
關(guān)于集成 PROFINET 口的 CPU 和 WinAC RTX 所支持的通信服務(wù)總覽,請(qǐng)參見(jiàn)條目18909487 。此總覽包含有關(guān)集成 PROFINET 口的 CPU 和 WinAC RTX 所支持的開(kāi)放式 IE 通信協(xié)議的信息。
下列通信塊可以用于基于 TCP 協(xié)議的開(kāi)放式通信:
這些通信塊可以在 Standard Library -> Communication Blocks 下找到。
例程描述:
首先為 S7-300 站創(chuàng)建硬件組態(tài)。注意配置 MB100 作為時(shí)鐘存儲(chǔ)器。 發(fā)送請(qǐng)求由該時(shí)鐘存儲(chǔ)器觸發(fā)。保存編譯 S7-300 站的硬件組態(tài),下載到 CPU。
STEP 7 程序由 OB100,OB1,F(xiàn)B1, DB11,DB1,DB100,DB200 , FB63,F(xiàn)B64,F(xiàn)B65 和 FB66。
OB100:
OB1:
FB1:
在 "FB63 "TSEND" 的輸入?yún)?shù) "REQ" 上施加上升沿以觸發(fā)發(fā)送請(qǐng)求。發(fā)送任務(wù)的觸發(fā)是由時(shí)鐘標(biāo)志 M100.6 和變量 "SEND_BUSY" 來(lái)控制的。如果發(fā)送任務(wù)運(yùn)行, "C1.SEND_BUSY" 則被置位,無(wú)法再觸發(fā)新的發(fā)送請(qǐng)求。
如果發(fā)送任務(wù)成功完成, "SEND_BUSY" 被復(fù)位。這時(shí)新的發(fā)送任務(wù)才可以被觸發(fā)。
一旦 TCP 連接建立了,就能接收數(shù)據(jù)。
輸出參數(shù) "NDR" 用于表示已接收到新數(shù)據(jù)。輸出參數(shù) "RCVD_LEN" 表明接收數(shù)據(jù)的長(zhǎng)度,如果數(shù)據(jù)接收成功,保存參數(shù) "RCVD_LEN"。
如果數(shù)據(jù)未被成功接收,那么輸出參數(shù) "STATUS" 可以保存下來(lái)并用于評(píng)估狀態(tài)。
可以通過(guò) FB66 "TDISCON" 有目的地結(jié)束 TCP 連接。在 FB66 "TDISCON" 的輸入?yún)?shù)"REQ" 上施加上升沿以請(qǐng)求結(jié)束 TCP 連接。
注意:
示例程序中TCP 協(xié)議用來(lái)數(shù)據(jù)傳輸,需在數(shù)據(jù)結(jié)構(gòu) "OUCW_2"中設(shè)定參數(shù) "connection_type" 為 "B#16#11" 。
S7-300 CPUs V2.3 支持 TCP (兼容模式)。如在S7-300 CPU V2.3 中運(yùn)行示例程序,需在數(shù)據(jù)結(jié)構(gòu) "OUCW_2" 中設(shè)定參數(shù) "connection_type" 為 "B#16#01" 。
1、SMS基礎(chǔ)知識(shí)介紹
注:PDU方式中AT+CMGS命令解釋?zhuān)?br />
AT+CMGS=XXX<CR> …XXX表示PDU中TPDU的長(zhǎng)度
其中,紅色的數(shù)字(3108214365F7)代表對(duì)方的手機(jī)號(hào)碼,在PDU格式中,手機(jī)號(hào)碼每?jī)晌恍枰獙?duì)調(diào)。比如在上面這個(gè)例子里,對(duì)方的手機(jī)號(hào)碼為13801234567,F(xiàn)用來(lái)補(bǔ)充7后面的空位。藍(lán)色的數(shù)字(59296C14)是短消息內(nèi)容的Unicode碼,這里5929代表“天”6C14代表“氣”。Unicode碼同樣可以用來(lái)表示中一般英文字母和數(shù)字,方法是在英文或數(shù)字的ASCII碼前加00。紫色的數(shù)字(04)代表短消息的長(zhǎng)度,它等于其后所有字符個(gè)數(shù)除以2。黑色的數(shù)字每次發(fā)送短消息時(shí)都是相同的,使用時(shí)可以照抄,但前提是所使用的SIM卡在使用前要用手機(jī)設(shè)置好短消息服務(wù)中心號(hào)碼(+8613800100500)。漢字的Unicode碼可以通過(guò)編碼轉(zhuǎn)換軟件得到。
2、網(wǎng)絡(luò)結(jié)構(gòu)圖
硬件
表1、硬件列表
表2、軟件列表
4、以TEXT的方式發(fā)送SMS
上面庫(kù)程序是壓縮文件,先解壓縮到一個(gè)目錄下,在該目錄下又會(huì)看到3個(gè)壓縮文件,再解壓這三個(gè)壓縮文件,解壓縮后如下圖所示:
從上圖中,解壓三個(gè)壓縮文件后Sms_bloc;SMS_MD720_Application;Sms_MD720_Simple
打開(kāi)后在連接描述的窗口里輸入一個(gè)連接名如下圖:
點(diǎn)擊OK后,選擇與計(jì)算機(jī)連接的串口,這里連接的是串口1,所以設(shè)置如下圖:
在上圖點(diǎn)擊OK按鈕后,設(shè)置串口的通訊參數(shù)如下:
點(diǎn)擊OK按鈕后,在出現(xiàn)的串口里先輸入 “+++”后,輸入“AT”檢查與Modem的連接是否正常,若正常則Modem會(huì)返回OK,如下圖:
然后在輸入指令“AT+IRP=9600”修改通訊波特率為9600如下圖所示:
修改成功后,把連接計(jì)算機(jī)上的串口拔下后,把9針口連接到CP341的串口上。
打開(kāi)Step7 Manger,打開(kāi)后點(diǎn)擊File菜單下的New…,新建一個(gè)項(xiàng)目,在新建項(xiàng)目的串口里輸入項(xiàng)目SMS_CP341,然后點(diǎn)擊新建,項(xiàng)目的硬件組態(tài)如下圖所示:
雙擊CP341-RS232C,打開(kāi)屬性窗口如下圖:
點(diǎn)擊Parameter...,設(shè)置串口的通訊協(xié)議為
雙擊Protocol協(xié)議包,配置串口通訊的參數(shù)如下圖:
配置完硬件后,編譯并下載硬件組態(tài),然后打開(kāi)Sms_MD720_Simple項(xiàng)目,并拷貝Sms_MD720_Simple項(xiàng)目下的除OB1功能塊外的所有功能塊到SMS_CP341項(xiàng)目相應(yīng)的目錄下,同時(shí)需要拷貝Source下的源代碼到SMS_CP341項(xiàng)目下的Source目錄下。
打開(kāi)OB1塊,在OB1里調(diào)用FB100,背景數(shù)據(jù)塊為DB100,如下圖所示:
在CP_ADR中只需輸入CP341的邏輯地址256。輸入后保存程序。編寫(xiě)OB1后打開(kāi)DB100數(shù)據(jù)塊如下圖:
這里SIM卡無(wú)PIN碼,要發(fā)送的信息是“Weather”;發(fā)送的手機(jī)號(hào)為“13801234567”;設(shè)置DB100的參數(shù)如下圖:
修改后保存DB100,并下載所有的程序塊到CPU中。下載后打開(kāi)打開(kāi)變量監(jiān)控表并在線監(jiān)控,如下圖:
在變量監(jiān)控表里先置位”SMS”.b_init,然后在置位”SMS”.SEND,等待一會(huì)兒,可以看到變量監(jiān)控表里的”SMS”.n_status當(dāng)置位”SMS”.b_init時(shí)會(huì)從1002變成201,然后當(dāng)置位”SMS”.SEND時(shí)會(huì)從201變成202、204、206,過(guò)一會(huì)兒又回到201的值,這樣接可以再目的手機(jī)上接收到“Weather”的短信。
注意:如果例子項(xiàng)目文件打不開(kāi),請(qǐng)把計(jì)算機(jī)的語(yǔ)言設(shè)置為德語(yǔ)。
打開(kāi)后如下圖:
修改源程序代碼MD720_SMS_Textmode := '$R$LAT+CMGF=1$R'為MD720_SMS_Textmode := '$R$LAT+CMGF=0$R'如下圖所示:
str_outbox := SMS_Textmode_Attr;改為str_outbox :=MD720_SMS_Textmode;如下圖:
修改后,點(diǎn)擊File下Save,然后再點(diǎn)擊File下的Complie,如下圖:
關(guān)閉SCl編輯窗口,若發(fā)送的目的手機(jī)號(hào)為13801234567發(fā)送的內(nèi)容為“天氣”打開(kāi)DB100,修改發(fā)送參數(shù)如下圖:
如何使用程序讀取運(yùn)行中 S7-300 CPU的 IP 地址?
在S7-300 CPU 中通過(guò)調(diào)用 "RDSYSST" 指令可以讀取 IP 地址。 通過(guò) "RDSYSST" 指令可讀取部件列表或系統(tǒng)狀態(tài)列表的部件目錄(SSL 或德語(yǔ)的 SZL)。 通過(guò) SSL ID 和 INDEX 指定部件列表或部件列表中一個(gè)對(duì)象的部件列表目錄及類(lèi)型或者數(shù)量。使用SSL ID = 37 (hex) 和 INDEX = 0 (hex) 來(lái)讀取 S7-300 CPU 的 IP 地址。
表 01 "RDSYSST" 指令的輸入?yún)?shù).
表 01
參數(shù)
數(shù)據(jù)類(lèi)型
描述
REQ
BOOL
REQ=1: 觸發(fā)執(zhí)行
SSL_ID
WORD
將要讀取的系統(tǒng)狀態(tài)列表或部分列表的ID號(hào)
INDEX
WORD
部分列表中對(duì)象的類(lèi)型或編號(hào)
表 02
參數(shù)
數(shù)據(jù)類(lèi)型
描述
RET_VAL
INT
如果執(zhí)行中程序出錯(cuò),RET_VAL 參數(shù)會(huì)返回故障代碼。
BUSY
BOOL
TRUE:讀指令尚未執(zhí)行完畢。
SZL_HEADER
STRUCT
SZL_HEADER 是個(gè)結(jié)構(gòu)體。詳細(xì)結(jié)構(gòu)介紹在"SZL_HEADER 結(jié)構(gòu)體".
DR
ANY
讀取SSL的部件列表或SSL部件列表的目錄的目標(biāo)區(qū)域。
SZL_Header 輸出是按照以下結(jié)構(gòu)定義的一個(gè)結(jié)構(gòu)體:
LENTHDR: WORD
N_DR: WORD
END_STRUCT
本例中讀取SSL 部件列表并保存在數(shù)據(jù)塊 DB2 "SZL_VALUE" 的起始地址 0 中。 S7-300 CPU 的 IP 地址由 4 個(gè)字節(jié)構(gòu)成,以16進(jìn)制字節(jié)形式存儲(chǔ)在 DB2 "SZL_VALUE" 的起始地址 2 中。
圖. 02
圖. 03
圖. 04
圖. 05
圖. 06
圖. 07
該下載包含項(xiàng)目 "Read_IP_Address.zip".
拷貝 "Read_IP_Address.zip" 文件到一個(gè)單獨(dú)的文件夾然后雙擊,之后使用 STEP 7 打開(kāi)。
如何編程通信塊 FB63 "TSEND", FB64 "TRCV", FB65 "TCON" 和 FB66 "TDISCON" 以實(shí)現(xiàn)用 S7-300 或 S7-400 CPU 的 PROFINET 口進(jìn)行基于 TCP 協(xié)議的數(shù)據(jù)交換?
集成 PROFINET 口的 CPU 和 WinAC RTX ,支持開(kāi)放式 IE 通信。
從標(biāo)準(zhǔn)庫(kù)中拷貝最新版本的上述通訊塊到用戶(hù)程序中,然后再編寫(xiě)程序中調(diào)用它們。
建立 TCP 連接的連接參數(shù)保存在一個(gè)數(shù)據(jù)結(jié)構(gòu)中。
本例中,用到 UDT65 "TCON_PAR" 這個(gè)數(shù)據(jù)結(jié)構(gòu),保存在DB1中并由用戶(hù)參數(shù)化。 注意
表 01 "OUCW_2" 數(shù)據(jù)結(jié)構(gòu)保存的連接參數(shù)
表 01
字節(jié)
參數(shù)
數(shù)據(jù)類(lèi)型
描述
0 to 1
block_length
WORD
"OUCW_2" 數(shù)據(jù)結(jié)構(gòu)長(zhǎng)度
2 to 3
id
BYTE
連接標(biāo)識(shí)
值范圍: w#16#0001 至 w#16#0FFF
必須在相關(guān)塊ID中指定該參數(shù)。
4
connection_type
BYTE
TCP 協(xié)議版本: B#16#11
5
active_est
BOOLEAN
建立連接標(biāo)識(shí)
6
local_device_id
BYTE
通過(guò)CPU 315-2 PN/DP集成PN接口通信:B#16#02
7
local_tsap_id_len
BYTE
local_tsap_id 長(zhǎng)度
connection_type = B#16#11時(shí)可行值:0或2
(主動(dòng)端:0或2,被動(dòng)端:2)
8
rem_subnet_id_len
BYTE
當(dāng)前不可用,參數(shù)值B#16#00
9
rem_staddr_len
BYTE
遠(yuǎn)程連接端點(diǎn)地址長(zhǎng)度
10
rem_tsap_id_len
BYTE
rem_tsap_id beter參數(shù)
connection_type = B#16#11時(shí)的可行值:0或2
11
next_staddr
BYTE
next_staddr 長(zhǎng)度
12 to 27
local_tsap_id
ARRAY [1..16] of BYTE
本地端口號(hào):2000,例如
local_tsap_id[1] = B#16#7 (十六進(jìn)制端口號(hào)高字節(jié))
local_tsap_id[2] = B#16#D0 (十六進(jìn)制端口號(hào)低字節(jié))
local_tsap_id[3-16] = B#16#00
28 to 33
rem_subnet_id
ARRAY [1..6] of BYTE
當(dāng)前不可用,參數(shù)值B#16#00
34 to 39
rem_staddr
ARRAY [1..6] of BYTE
遠(yuǎn)程連接端點(diǎn)IP地址: 192.168.0.30
rem_staddr[1] = B#16#C0
rem_staddr[2] = B#16#A8
rem_staddr[3] = B#16#00
rem_staddr[4] = B#16#1E
rem_staddr[5-6] = B#00(保留)
40 to 55
rem_tsap id
ARRAY [1..16] of BYTE
遠(yuǎn)程連接端點(diǎn)端口號(hào): 2000,例如
local_tsap_id[1] = B#16#7 (十六進(jìn)制端口號(hào)高字節(jié))
local_tsap_id[2] = B#16#D0 (十六進(jìn)制端口號(hào)低字節(jié))
local_tsap_id[3-16] = B#16#00
56 to 61
next_staddr
ARRAY [1..6] of BYTE
next_staddr[1-6] = B#16#00
62-63
spare
WORD
保留,值W#16#0000.
S7 程序中包含了對(duì) FB65 "TCON" 的調(diào)用和帶有建立 TCP 連接的連接參數(shù)數(shù)據(jù)結(jié)構(gòu)"OUCW_2" 創(chuàng)建的DB1 。也包含了來(lái)自于 Standard Library -> Communication Blocks 下的 FB63 "TSEND" 和 FB64 "TRCV" 的調(diào)用。 FB63 "TSEND" 用于發(fā)送數(shù)據(jù)到 S7 站或 S5 站,以及到 PC 站或到第三方系統(tǒng). FB64 "TRCV" 用于接收來(lái)自其他 S7 站,S5 站,PC 站和第三方系統(tǒng)的數(shù)據(jù)。
OB100 是重啟 OB 塊,當(dāng) CPU 重新啟動(dòng)時(shí) (暖啟動(dòng)) 執(zhí)行一次.在 OB100 中,第一次通信由 M0.3 觸發(fā)。
OB1 循環(huán)調(diào)用。 FB1 在 OB1 中被調(diào)用 (背景數(shù)據(jù)塊: DB11) , M0.3作為 INIT_COM 參數(shù),M10.0作為ABORT參數(shù)。在 OB1 中調(diào)用 FB1結(jié)束后, 復(fù)位M0.3。
圖. 01
在 OB1 中調(diào)用 FB1。該 FB1 中調(diào)用以下功能塊:
定義連接ID
你可以隨意修改連接ID。修改FB1 network2中的連接ID和你的組態(tài)保持一致。連接ID保存在DB11的靜態(tài)變量中。
本例中定義連接ID為 "2"。
圖. 02 連接建立
通過(guò) FB65"TCON" 的輸入?yún)?shù) "REQ" 的上升沿觸發(fā)來(lái)建立連接。數(shù)據(jù)塊DB11 的背景數(shù)據(jù)塊中集成了帶有連接參數(shù)的數(shù)據(jù)結(jié)構(gòu) "OUCW_2"。
FB65 "TCON" 的輸入?yún)?shù) "CONNECT" 需要指定一個(gè)含有連接參數(shù)的存儲(chǔ)區(qū)。
在系統(tǒng)啟動(dòng)時(shí)連接建立并保持,直到調(diào)用 FB66 "TDISCON" 來(lái)斷開(kāi)連接,或讓CPU 進(jìn)入停止模式或關(guān)閉電源來(lái)斷開(kāi)連接。
圖. 03
可以為輸入?yún)?shù) "DATA" 指定包含要發(fā)送數(shù)據(jù)的存儲(chǔ)區(qū)。
并在輸入?yún)?shù) "LEN" 填寫(xiě)要發(fā)送的字節(jié)數(shù)。
本例中發(fā)送數(shù)據(jù)保存在DB100中,向通信伙伴發(fā)送100個(gè)字節(jié)。
輸出參數(shù) "DONE", "ERROR" 和 "STATUS" 用于任務(wù)評(píng)價(jià)。
圖. 04
如果發(fā)送任務(wù)執(zhí)行出錯(cuò),那么 "SEND_BUSY" 變量同樣被復(fù)位,F(xiàn)B63 的輸出參數(shù) "STATUS" 的值被保存用于錯(cuò)誤分析。
圖. 05
圖. 06
用輸入?yún)?shù) "DATA" 指定保存接收數(shù)據(jù)的存儲(chǔ)的地址和長(zhǎng)度。
本例中接受100個(gè)字節(jié)并保存在DB200中。
圖. 07
圖. 08
圖. 09
圖. 10
S7-300 PLC通過(guò)MD720-3發(fā)送短消息
SMS(Short Messaging Service)是最早的短消息業(yè)務(wù),也是現(xiàn)在普及率最高的一種短消息業(yè)務(wù)。目前,這種短消息的長(zhǎng)度被限定在140字節(jié)之內(nèi),這些字節(jié)可以是文本的。SMS以簡(jiǎn)單方便的使用功能受到大眾的歡迎,卻始終是屬于第一代的無(wú)線數(shù)據(jù)服務(wù),在內(nèi)容和應(yīng)用方面存在技術(shù)標(biāo)準(zhǔn)的限制。
一個(gè)SMS消息最長(zhǎng)可包括 160個(gè)字符(偶數(shù)二進(jìn)制)。
SMS是一種存儲(chǔ)和轉(zhuǎn)發(fā)服務(wù)。也就是說(shuō),短消息并不是直接從發(fā)送人發(fā)送到接收人,而始終通過(guò)SMS中心進(jìn)行轉(zhuǎn)發(fā)的。如果接收人處于未連接狀態(tài)(可能電話(huà)已關(guān)閉),則消息將在接收人再次連接時(shí)發(fā)送。
SMS具有消息發(fā)送確認(rèn)的功能。這意味著
SMS與尋呼不同,用戶(hù)不是簡(jiǎn)單地發(fā)出短消息然后相信消息已發(fā)送成功;而是短消息發(fā)送人可以收到返回消息,通知他們短消息是否已經(jīng)發(fā)送成功。
SMS 消息的發(fā)送和接收可以和 GSM 語(yǔ)音同步進(jìn)行。
SMS 消息按消息收費(fèi),因此要比通過(guò)基于 IP 的網(wǎng)絡(luò)(例如,使用 GPRS [通用分組無(wú)線業(yè)務(wù)])發(fā)送的數(shù)據(jù)昂貴得多(每字節(jié))。
要使用 SMS,用戶(hù)需要預(yù)訂支持 SMS 的移動(dòng)網(wǎng)絡(luò),并且必須為該用戶(hù)啟用 SMS 的使用。用戶(hù)需要有發(fā)送短消息或接收短消息的目的地。該目的地通常是其他的移動(dòng)電話(huà),但也可以是服務(wù)器。最后,用戶(hù)還需要有支持 SMS 的移動(dòng)電話(huà),并需要了解如何使用其特定型號(hào)的移動(dòng)電話(huà)發(fā)送或閱讀短消息。
SMS發(fā)送的模式分有兩種:Text模式和PDU模式.
使用Text模式收發(fā)短信代碼簡(jiǎn)單,實(shí)現(xiàn)起來(lái)十分容易,但是最大的缺點(diǎn)是不能收發(fā)中文短信, PDU模式完全可以解決這個(gè)問(wèn)題,PDU模式不僅支持中文短信,也能發(fā)送英文短信, PDU模式收發(fā)短信可以使用三種編碼: 7-bit、8-bit和UCS2編碼。 7-bit編碼用于發(fā)送普通的ASCII字符,8-bit編碼通常用于發(fā)送數(shù)據(jù)消息,UCS2編碼用于發(fā)送Unicode字符。我們要實(shí)現(xiàn)中文短信的發(fā)送,所以選擇UCS2,即中文Unicode碼。下面是關(guān)于兩種方式發(fā)送的示例AT指令:
范例:向手機(jī)號(hào)碼13801234567發(fā)送短信“Weather”
(1) TEXT方式
AT+CMGF=1<CR> …………設(shè)置短信發(fā)送方式為T(mén)EXT模式
AT+CMGS=”13801234567”<CR> …………向被叫號(hào)碼發(fā)短信
> Weather <CTRL+Z>
(2) PDU方式
AT+CMGF=0<CR> ……………設(shè)置短信發(fā)送方式為PDU模式
AT+CMGS=018<CR> ……………向被叫號(hào)碼發(fā)送PDU的長(zhǎng)度
>0001000D91683108214365F700080459296C14<CTRL+Z>
>PDU ...輸入PDU信息
0001 :基本參數(shù)
00 :消息基準(zhǔn)值TP-MR
0D :目標(biāo)地址數(shù)字個(gè)數(shù)(十進(jìn)制,不包含91)
91 :目標(biāo)地址格式
68 :目標(biāo)地址為中國(guó)
3108214365F7 :目標(biāo)地址(13801234567)
00 :協(xié)議標(biāo)示TP-PID
08 :用戶(hù)信息編碼格式TP-DCS(08表示UCS2編碼)
00 :有效期TP-VP
04 :用戶(hù)信息長(zhǎng)度TP-UDL
59296C14 :用戶(hù)信息(“天氣”)
PDU格式發(fā)送短消息時(shí),還必須計(jì)算整個(gè)PDU數(shù)據(jù)包的長(zhǎng)度,PDU數(shù)據(jù)包的長(zhǎng)度等于(PDU數(shù)據(jù)包字符數(shù)-2)/2,在上面的例子里:(38-2)/2=18。
硬件的連接, S7-300CP后接CP340(RS232串口)或CP341(RS232串口),再通過(guò)串口直連線連接CP340或CP341到MD720-3的串口上,MD720-3插一塊SIM卡。直連線的1針到9針對(duì)應(yīng)連接。
圖1、網(wǎng)絡(luò)結(jié)構(gòu)圖
3、需要的軟件及硬件
Component
Qty.
MLFB / Order number
Note
PS307 5A
1
6ES7307-1EA00-0AA0
CPU317-2PN/DP
1
6ES7317-2EJ10-0AB0
CP341
1
6ES7341-1AH01-0AE0
MD720-3
1
6NH9720-3AA00
直連線
1
6ES7901-3CB30-0XA0
SIM card
軟件
Component
No.
MLFB / Order number
Note
STEP 7 5.4 SP4
1
6ES7810-4CC08-0YA5
在這里不介紹用自由口編程的方式編寫(xiě)AT的指令來(lái)發(fā)送SMS,而是采用西門(mén)子提供庫(kù)功能塊來(lái)編寫(xiě)程序。庫(kù)程序的下載鏈接地址如下:26100569
圖2、存放目錄
Sms_bloc: 包括了使用CP340、CP341、CP442-1收發(fā)短信的庫(kù)功能。
Sms_MD720_Application:包含了用CP341和CP442-1收發(fā)短信的應(yīng)用程序。
Sms_MD720_Simple:包含了一個(gè)用Cp341收發(fā)短信的簡(jiǎn)單應(yīng)用程序
由于三個(gè)文件夾的程序只有Sms_MD720_Simple的程序是完整的,另外兩個(gè)文件夾下的程序由于編者的疏忽,程序不完整,導(dǎo)致無(wú)法正常編譯通過(guò)。所以在本文里我們只能介紹,通過(guò)拷貝Sms_MD720_Simple項(xiàng)目下的功能塊到實(shí)際的項(xiàng)目中來(lái)實(shí)現(xiàn)發(fā)送短信的功能。
在新建項(xiàng)目前,需要硬件按照網(wǎng)絡(luò)圖安裝好,并加電。MD720加電后恢復(fù)出廠設(shè)置,讓其工作在終端模式下(在MD720的系統(tǒng)手冊(cè)上介紹如何恢復(fù)出廠設(shè)置,這里不再作詳細(xì)介紹),恢復(fù)后用串口直連線,連接MD720與計(jì)算機(jī)的串口,打開(kāi)計(jì)算機(jī)的超級(jí)終端程序,打開(kāi)方式如下圖:
圖3、打開(kāi)超級(jí)終端
圖4、輸入連接名
圖5、選擇COM端口
圖6、COM口的參數(shù)設(shè)置
圖7、測(cè)試與Modem的連接
圖8、設(shè)置Modem的波特率
圖9、S7-300站的硬件組態(tài)
圖10、CP341的硬件地址設(shè)置
圖11、選擇通訊協(xié)議為ASCII
圖12、設(shè)置ASCII的通訊參數(shù)
圖13、設(shè)置傳輸?shù)目刂品绞?
圖14、設(shè)置接收的緩存區(qū)
拷貝后如下圖:
圖15、拷貝庫(kù)程序到項(xiàng)目下
圖16、OB1中調(diào)用短消息功能塊
圖17、在發(fā)送功能塊的背景數(shù)據(jù)塊中設(shè)置修改CP341的硬件地址
圖18、在發(fā)送功能塊的背景數(shù)據(jù)塊中設(shè)置PIN碼、目的手機(jī)號(hào)及信息
圖19、通過(guò)變量監(jiān)控表觸發(fā)信息發(fā)送
上面的調(diào)試步驟只是從功能上實(shí)現(xiàn)了發(fā)短信的功能,要實(shí)現(xiàn)收發(fā)多條信息到多個(gè)多個(gè)手機(jī),可以參考Sms_MD720_Application和Sms_MD720_Simple下的編程思路開(kāi)發(fā)適合自己應(yīng)用的程序。
5、以PDU的方式發(fā)送中文SMS
要發(fā)送中文短信,需要安裝Step7 SCL編程語(yǔ)言包,發(fā)送短信庫(kù)功能塊是由FB100來(lái)完成的,F(xiàn)B100是由SCL語(yǔ)言編寫(xiě),要想使其能發(fā)送中文的短信,那么就需要用SCL語(yǔ)言修改FB100功能塊。修改方式如下:
在發(fā)送文本方式步驟的基礎(chǔ)上,用SCL語(yǔ)言打開(kāi)SMS_CP341項(xiàng)目下目錄Source下的SMS_Send源代碼,如下圖:
圖20、打開(kāi)發(fā)送功能塊的源文件
圖21、SCL編輯器打開(kāi)后的源文件
圖22、修改短信的發(fā)送模式為PDU模式
圖23、修改程序中的發(fā)送模式
圖24、重新編譯修改后的程序
圖25、修改為PDU模式下的信息格式