国产精品免费视频网站丨日韩a毛片免费观看丨欧美日韩中文在线不卡丨欧亚精品乱码久久久久久丨1000部夫妻午夜免费丨国产精品久久久久久久久一级无码丨日欧片内射AV影院频道丨97色伦图片 PLC模擬量輸入輸出模塊的低成本選型分析
1 引言
PLC由于其高可靠性、編程簡單、通用性強、體積小、結構緊湊、安裝維護方便等特點,而在產業控制中得到了廣泛應用。PLC的模塊一般分為以下幾大類:開關量輸進模塊、開關量輸出模塊、模擬量輸進模塊、模擬量輸出模塊。在產業控制中特別是過程控制領域中需要采集和控制的模擬量比較多,因而對PLC的模擬量輸進、輸出模塊需要的較多,而模擬量輸進、輸出模塊比較貴,增加模擬量輸進、輸出模塊就增加了本錢,降低了整個系統的性價比,限制了PLC的應用。本文提出了一種基于通訊的模擬量輸進、輸出模塊的擴展方法力圖解決這一題目。
2 基于通訊的模擬量輸進、輸出模塊的擴展方法
(1) PLC模擬量輸進模塊擴展
這里以一路12位模擬量輸進為例,模擬信號以0~5V標準電壓的形式送進信號輸進端,應用12位A/D轉換芯片MAX187實現模數轉換。MAX187是12位串行A/D,具有較高的轉換速度,采樣頻率是75kHz,適用于較高精度的過程控制。考慮到實際產業現場中的高頻干擾,在采樣信號送MAX187之前還使用了低通濾波器濾波,如圖1所示。
圖1 低通濾波、放大器及A/D轉換
MAX187具有內部參考電壓,既4#管腳(REF)為 4.096V,因此,A/D轉換的全量程為4.096V。而輸進信號是0~5V,因此,要加一級運放把0~5V轉換成0~4.096V后送進MAX187。AT89C52的P1.3和MAX187的片選端(CS)相連、AT89C52的P1.4和MAX187的串行時鐘信號端(SCLK)相連、AT89C52的P1.5和MAX187的串行數據輸出端(DOUT)相連。模擬量采樣的值存進單片機的內存中,再由單片機的串行口傳送給PLC。A/D轉換的C51程序如下:
#include
#include
sbit IC4_S = P1^4; /* AD輸進端口設置*/
sbit IC4_D = P1^5;
sbit IC4_C = P1^3;
void input(void )
{ unsigned char idata i;
unsigned int idata result=0x0000;
IC4_C = 0; /* CS端為低電平*/
for(i=0;i<12;i++)
{ result = result << 1;
IC4_S = 0; /*時鐘端產生時鐘脈沖*/
IC4_S = 1;
if( IC4_D ) result++; /*從串行數據輸出端讀進A/D轉換數據*/
}
IC4_C = 1; /* CS端為高電平*/
pdat[1] = result;
}
MAX187的工作時序圖見圖2。
圖2 MAX187的工作時序圖
(2) PLC模擬量輸出模塊擴展
這里以一路12位模擬量輸出為例,設計中將采用12位D/A轉換芯片MAX531來實現數摸轉換。我們在MAX531的輸出端接運算放大器,將模擬輸出調節至0~5V,輸出部分的硬件電路如圖3所示。這里,MAX531是12位串行D/A,具有較高的轉換速度, MAX531具有內部參考電壓,既10#管腳(REFOUT)為2.048V,因此, D/A轉換的全量程為2.048V。而輸出信號一般要求是標準的0~5V,因此,要加一級運放把MAX531輸出的0~2.048V信號轉換成 0~5V信號。AT89C52的P1.0和MAX531的串行時鐘信號端(SCLK)相連、AT89C52的P1.1和MAX531的串行數據輸進端(DIN)相連、AT89C52的P1.2和MAX531的片選端(CS)相連。PLC把要輸出的模擬量通過串行口傳送給單片機,存進的內存中,再由單片機完成D/A轉換進行輸出。A/D轉換的C51程序如下:
圖3 D/A轉換及放大器原理圖
#include
#include
sbit IC2_S = P1^0; /*DA輸出端口設置*/
sbit IC2_D = P1^1;
sbit IC2_C = P1^2;
void output(unsigned int dat)
{ unsigned char idata i = 12;
IC2_C = 0; /* CS端為低電平*/
while( i-- )
{ IC2_S = 0; /*時鐘端產生時鐘脈沖*/
if ( dat &0x0800 ) IC2_D =1; /*從串行數據輸進端讀進DA轉換數據*/
else IC2_D =0;
IC2_S = 1;
dat = dat << 1;
}
IC2_C=1; /* CS端為高電平*/
}
MAX531的工作時序圖見圖4。
圖4 MAX531的工作時序圖
3 PLC與擴展模塊之間的通訊接口及通訊協議
(1) 通訊接口
以松下FP1系列PLC為例來闡述PLC與擴展模塊之間的通訊,FP1系列PLC的通訊接口采用標準9芯RS232接口,它與擴展模塊之間的接線如圖5所示。
圖5 擴展模塊與PLC的通訊連接
· 擴展模塊的RXD端與PLC的TXD端聯接,使擴展模塊接收到PLC發出的數據;
·擴展模塊的TXD端與PLC的RXD端聯接,使擴展模塊發出的數據被PLC接收到;
· 擴展模塊的地與PLC的SG端互聯,使兩者的工作基準地電平相同。
上面采用的是RS232接口,PLC一次只能擴展一個模塊。假如要擴展多個模塊,可以采用RS485接口,現代的PLC一般都帶有RS485接口。
(2) 通訊協議
松下FP1系列PLC與擴展模塊之間的通訊協議為松下公司專用的MEWTOCOL-COM協議,該協議采用異步通訊方式,其波特率有1200、2400、4800、9600、19200、38400、57600、115200bps等多種可選,且報文長度可變可固定。該協議格式分為命令消息(Command Message),正常響應消息(Response Message-normal),出錯響應消息(Response Message-error)三種。
其中:%為起始符,標記每一幀報文的開始;CR為結束符,標記每一幀報文的結束;
AD為PLC的站地址,為兩位16進制數,如00則表示第一臺PLC;
#、$、!標注該幀報文為何種類型。
Command code為命令代碼,如例1中的“RD”,表示讀數據區。Response code為響應代碼一般返回接收到的命令消息中的命令代碼。Error(H)和Error(L)為出錯代碼,是兩位16進制數, 可根據其值在協議中查出錯誤的描述。
Text code為命令參數,如例1命令消息中“D 01105 01107”,“D”表示數據寄存器,“01105 01107”表示第1105號至1107號,而在例1響應消息中,“6300 4433 0A00”則表示DT1105至DT1107中數據分別為6300、4433、0A00。
BCC(H)和BCC(L)為前面字符串的BCC校驗碼的高、低位,為兩位16進制數。其初值為0,然后從起始符開始與該幀報文中每一字節按位進行異或運算得到。
例1:讀取DT1105至DT1107中的數據的命令消息如下:
% 01 # RD D01105 01107 57 CR
若DT1105至DT1107中數據分別為6300、4433和0A00,PLC返回的響應消息如下:
% 01 $ RD 6300 4433 0A00 62 CR
那么, 模擬量輸進擴展模塊與PLC通訊的報文可如下:
% 01 # WD D 01105 01105 0fff 32 CR
表示1號模擬量輸進擴展模塊把模擬量采樣值0FFF存進PLC的第1105個數據寄存器
模擬量輸出擴展模塊與PLC通訊的報文可如下:
% 01 # RD D 01106 0110F 02 CR
表示1號模擬量輸出擴展模塊請求把PLC中第1106個數據寄存器保存的模擬量輸出值讀進。
若DT1106中數據為0fff,PLC返回的響應消息如下:
% 01 $ RD 0fff 45 CR
1號模擬量輸出擴展模塊就把接收到的數字量0fff轉換成模擬量輸出。
4 結束語
本文提出的方法已在實驗室中調試通過,并多次長時間運行測試,以驗證其正確性與穩定性,收到了令人滿足的效果,通訊十分穩定可靠。各位讀者可在本文的基礎上,開發出8路、16路8位、10位、12位等模擬量輸進、輸出擴展模塊;本文使用的是松下公司已有的MEWTOCOL-COM協議,讀者也可以自己編制通訊協議。本文意在提出一種低本錢的PLC模擬量輸進、輸出模塊擴展方法,假如要把它變成產品還有很長的路要走,例如,如何讓用戶使用得更方便,可靠性更高等等。這些都是需要進一步完善的。
更多PLC應用資料請登錄:www.cypssb.com/p12.html