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