熱情、耐心、真誠的服務(wù)與支持
一、自由口通信基本概念
1、自由口通信概述
UN-120L/200CPU的通訊口支持RS485接口標準。采用正負兩根信號線作為傳輸線路。
工作模式采用串行半雙工形式,在任意時刻只允許由一方發(fā)送數(shù)據(jù),另一方接收數(shù)據(jù)。
數(shù)據(jù)傳輸采用異步方式,傳輸?shù)膯挝皇亲址?,收發(fā)雙方以預(yù)先約定的傳輸速率,在時鐘的作用下,傳送這個字符中的每一位。
傳輸速率可以設(shè)置為1200、2400、4800、9600、19200、38400、57600、115200。
字符幀格式為一個起始位、7或8個數(shù)據(jù)位、一個奇/偶校驗位或者無校驗位、一個停止位。
字符傳輸從最低位開始,空閑線高電平、起始位低電平、停止位高電平。字符傳輸時間取決于波特率。
數(shù)據(jù)發(fā)送可以是連續(xù)的也可以是斷續(xù)的。所謂連續(xù)的數(shù)據(jù)發(fā)送,是指在一個字符格式的停止位之后,立即發(fā)送下一個字符的起始位,之間沒有空閑線時間。而斷續(xù)的數(shù)據(jù)發(fā)送,是指當一個字符幀發(fā)送后,總線維持空閑的狀態(tài),新字符起始位可以在任意時刻開始發(fā)送,即上一個字符的停止位和下一個字符的起始位之間有空閑線狀態(tài)。
示例:用PLC連續(xù)的發(fā)送兩個字符(16#55和16#EE)(程序如圖3和圖4),通過示波器測量CPU通訊端口管腳3/8之間的電壓,波形如下圖:
應(yīng)用自由口通信首先要把通信口定義為自由口模式,同時設(shè)置相應(yīng)的通信波特率和上述通信格式。用戶程序通過特殊存儲器SMB30(對端口0)、SMB130(對端口1)控制通信口的工作模式, CPU通信口工作在自由口模式時,通信口就不支持其他通信協(xié)議(比如PPI),此通信口不能再與編程軟件Micro/WIN通信。CPU停止時,自由口不能工作,Micro/WIN就可以與CPU通信。
3、發(fā)送和接收指令
XMT(發(fā)送)指令的使用比較簡單。RCV(接收)指令所需要的控制稍多一些。
RCV指令的基本工作過程為:
1.在邏輯條件滿足時,啟動(一次)RCV指令,進入接收等待狀態(tài)
2.監(jiān)視通信端口,等待設(shè)置的消息起始條件滿足,然后進入消息接收狀態(tài)
3.如果滿足了設(shè)置的消息結(jié)束條件,則結(jié)束消息,然后退出接收狀態(tài)
所以,RCV指令啟動后并不一定就接收消息,如果沒有讓它開始消息接收的條件,就一直處于等待接收的狀態(tài);如果消息始終沒有開始或者結(jié)束,通信口就一直處于接收狀態(tài)。這時如果嘗試執(zhí)行XMT指令,就不會發(fā)送任何消息。
所以確保不同時執(zhí)行XMT和RCV非常重要,可以使用發(fā)送完成中斷和接收完成中斷功能,在中斷程序中啟動另一個指令。
4、字符接收中斷
UN-120L/200CPU提供了通信口字符接收中斷功能,通信口接收到字符時會產(chǎn)生一個中斷,接收到的字符暫存在特殊存儲器SMB2中。通信口Port0和Port1共用SMB2,但兩個口的字符接收中斷號不同。
每接收到一個字符,就會產(chǎn)生一次中斷。對于連續(xù)發(fā)送消息,需要在中斷服務(wù)程序中將單個的字符排列到用戶規(guī)定的消息保存區(qū)域中。實現(xiàn)這個功能可能使用間接尋址比較好。
二、自由口通信使用指南
1、 通訊口初始化
SMB30(對于端口0)和SMB130(對于端口1)被用于選擇波特率和校驗類型。SMB30和SMB130可讀可寫。見如下圖:
表1.特殊存儲器字節(jié)SMB30/SMB130
示例:定義端口0為自由口模式,9600波特率,8位數(shù)據(jù)位,無校驗,程序如下圖:
2、發(fā)送數(shù)據(jù):
1、發(fā)送指令XMT能夠發(fā)送一個字節(jié)或多個字節(jié)的緩沖區(qū),最多為255個。使用邊沿觸發(fā)。
發(fā)送緩沖區(qū)格式:第一個字節(jié)為字符個數(shù),其后為發(fā)送的信息字符。
示例:如果PLC連續(xù)發(fā)送2個字符16#55和16#EE,程序如下圖:
2、判斷發(fā)送完成的方法
方法一:發(fā)送完成中斷。通過連接中斷服務(wù)程序到發(fā)送結(jié)束事件上,在發(fā)送完緩沖區(qū)中的最后一個字符時,則會產(chǎn)生一個中斷。對通訊口0為中斷事件9,對通訊口1為中斷事件26。連接中斷程序到中斷事件示例如下圖:
3、接收數(shù)據(jù)
接收指令RCV能夠接收一個字節(jié)或多個字節(jié)的緩沖區(qū),最多為255個。使用邊沿觸發(fā)或第一個掃描周期觸發(fā)。
接收緩沖區(qū)格式:第一個字節(jié)表示接收的字符個數(shù),其后為接收的信息字符。
RCV使能會將TBL緩沖區(qū)中的字符個數(shù)清零。要先定義接收開始條件和接收結(jié)束條件:
接收信息控制字如下圖:
示例:如果通過串口軟件發(fā)送4個字符依次為16#02 、16#55、16#EE、16#0A給PLC,接收條件:起始字符檢測,接收結(jié)束條件:結(jié)束字符檢測,PLC的接收程序及監(jiān)控信息表如下圖:
監(jiān)控接收信息狀態(tài)表:
查看接收信息完成程序
連接中斷程序:
中斷子程序:
接收信息程序:
注:1、本例程為只接收一次,如需一直接收信息,用SM0.0一直掃描接收指令。
2、控制字SMB94必須寫入個數(shù)值,否則無法接收到信息。