編程自由口通訊的基本步驟
1 設(shè)置通訊參數(shù):如果是集成在本機(jī)上基于RS485口,在SMB30中設(shè)置(prot0口);如果是采用通訊信號(hào)板,則在SMB130中設(shè)置(prot1口),這2個(gè)地址的設(shè)置,僅僅是對(duì)應(yīng)的通訊口的不同,參數(shù)是相同的。
2 定義接收信息的控制字節(jié),對(duì)于prot0口在SMB87;對(duì)于prot1口在SMB187中設(shè)置。
3 設(shè)置根據(jù)接收控制字節(jié)、通訊參數(shù)的通訊數(shù)據(jù)。
端口0:
SMB87/SMB88/SMW90/SMW92;
端口1:
SMB188/SMB189/SMW190/SMW192。
(根據(jù)協(xié)議用戶自由選擇)
4 設(shè)置通訊數(shù)據(jù)總字節(jié)數(shù),SMB94/SMB194。(范圍1~255)。
5 設(shè)置中斷事件號(hào)、開(kāi)中斷。發(fā)送完成中斷及接收完成中斷。
6 啟用發(fā)送指令XMT。
7 在發(fā)送完成中斷里編寫接收指令RCV;在接收完成中斷里編寫發(fā)送指令XMT。
假設(shè):做這樣一個(gè)例子,讓西門子200smart plc本機(jī)RS485口發(fā)送一串字符(siemens)到串口調(diào)試軟件的信息接收區(qū),串口調(diào)試軟件的發(fā)送區(qū)發(fā)送一串(ni hao!)到200smart plc數(shù)據(jù)寄存器VB102開(kāi)始的6個(gè)字節(jié)中,接收信息啟用起始符、結(jié)束符方式。
做這個(gè)程序前先定義好一些通訊參數(shù):(按上面的7點(diǎn)內(nèi)容展開(kāi))
定義SMB30: 自由口通訊、頻率9600、無(wú)校驗(yàn),SMB30=16#09
定義SMB87: 啟用接收信息控制、啟用起始符、結(jié)束符,SMB87=16#E0
設(shè)置起始符: SMB88=16#3A(自由選取)
設(shè)置結(jié)束符: SMB89=16#0A(自由選取)
設(shè)置中斷事件號(hào): 發(fā)送完成中斷事件號(hào)9;接收完成中斷事件號(hào)23
開(kāi)中斷
在上述初始化程序中,啟用發(fā)送指令,并編寫相應(yīng)的程序
定義好發(fā)送和接收數(shù)據(jù)的數(shù)據(jù)儲(chǔ)存地址區(qū)
西門子S7-200 PLC專用無(wú)線通訊終端
了解詳情點(diǎn)擊下圖
程序樣例
1 通訊初始化子程序。
2 在發(fā)送完成中斷中調(diào)用接收指令。
3 在接收完成中斷中調(diào)用發(fā)送指令。
4 在主程序中調(diào)用通訊初始化子程序。
5 定義發(fā)送數(shù)據(jù)塊數(shù)據(jù):
(發(fā)送字符siemens: 16#73; 16#69; 16#65; 16#6D; 16#65; 16#6E; 16#73)在數(shù)據(jù)塊中寫入,其中VB0是發(fā)送數(shù)據(jù)字符的個(gè)數(shù)不參與通訊。
6 需要注意的一些問(wèn)題:在“系統(tǒng)塊”中設(shè)置“啟動(dòng)”項(xiàng)“cpu模式”為“RUN”并確定。
7 編譯、保存用戶程序,將程序下載到cpu中并運(yùn)行cpu:創(chuàng)建一個(gè)便于觀察的“狀態(tài)圖表”:將發(fā)送和接收的數(shù)據(jù)切換到ASCLL顯示模式,并監(jiān)控。
8 連接通訊電纜,打開(kāi)串口調(diào)試軟件,設(shè)置好于PLC通訊SMB30一致的通訊參數(shù),并在數(shù)據(jù)發(fā)送區(qū)填寫好等待發(fā)送的數(shù)據(jù):由起始符開(kāi)始......到結(jié)束符。
16#3A 16#6E 16#69 空格(占一個(gè)字符) 16#68 16#6116#6F 16#21 16#0A
9 這時(shí),只要我點(diǎn)擊串口調(diào)試軟件發(fā)送區(qū)的“手動(dòng)發(fā)送”按鈕,軟件的接收區(qū)如果通訊正常就會(huì)顯示“Siemens”的字符。
10 觀察串口調(diào)試軟件的接收區(qū)回傳回來(lái)的siemens字符。
11 回過(guò)來(lái)觀察PLC“狀態(tài)圖表”中的顯示部分內(nèi)容。
一個(gè)簡(jiǎn)單的數(shù)據(jù)發(fā)送和接收程序編寫、調(diào)試已經(jīng)完成。其他復(fù)雜的通訊都是基于這種模式編寫的。無(wú)非就是教案或者數(shù)據(jù)格式等不一樣。
審核編輯:湯梓紅
-
plc
+關(guān)注
關(guān)注
5008文章
13150瀏覽量
462059 -
西門子
+關(guān)注
關(guān)注
93文章
3008瀏覽量
115633 -
RS485
+關(guān)注
關(guān)注
39文章
1142瀏覽量
82137 -
通訊
+關(guān)注
關(guān)注
9文章
893瀏覽量
34833 -
編程
+關(guān)注
關(guān)注
88文章
3592瀏覽量
93594
原文標(biāo)題:那個(gè)看似簡(jiǎn)單的西門子200 PLC自由口通訊,真的簡(jiǎn)單嗎?
文章出處:【微信號(hào):愛(ài)上PLC,微信公眾號(hào):愛(ài)上PLC】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論