大地资源网视频在线观看新浪,日本春药精油按摩系列,成人av骚妻潮喷,国产xxxx搡xxxxx搡麻豆

您現在的位置:智能制造網>技術中心>VC環境下PLC與上位機的實時通信

直播推薦

更多>

企業動態

更多>

推薦展會

更多>

VC環境下PLC與上位機的實時通信

2009年03月09日 19:40:29人氣:625來源:煙臺勾股通信技術有限公司

1  前言
      可編程控制器(plc)是集計算機技術、自動控制技術、通信技術為一體的新型自動控制裝置。由于體積小、可靠性高以及組態靈活等優點,plc在工業控制領域得到了廣泛的應用。在plc組成的自動測量和控制系統中,一般采用主從式控制結構,由plc向計算機發送數據,計算機處理數據后根據具體情況向plc發出相應的指令,控制plc的運行。plc作為下位機,完成數據采集、狀態判別、輸出控制等任務,上位機(微型計算機、工業控制機)完成采集數據信息的存儲、分析處理、狀態顯示以及打印輸出等任務,以實現對系統的實時監控。目前市場上常用的人機界面或監控組態軟件價格昂貴且由國外公司壟斷, 對于小型企業的單機系統來說,許多功能并不實用,同時組態軟件的本身也還存在不足之處,不能滿足一些特殊要求。因此,目前仍然需要技術人員根據實際情況開發小型經濟適用的軟件。筆者針對比較簡單的控制系統,利用vc++6.0設計了一個通信程序,實現了windows環境下上位計算機對多臺plc的靈活監控。 
2  通信類型
      日本三菱公司是的工廠自動化設備制造商,其工業可編程控制器在國內市場占有相當大的份額。本項目選用三菱fx2n-48mr型plc,fx系列plc支持以下5種通信類型: 
    (1) plc的n:n通信方式;
    (2) plc雙機并聯通信方式;
    (3) plc與計算機專有協議通信方式;
    (4) plc與計算機無協議通信方式(使用rs指令或fx2n-232if特殊功能塊);
    (5) 自由端口設計方式(需要特殊通信模塊,使用較少)。
      各種通信類型的具體特性列于表1。本系統采用專有協議通信方式,以pc機為主站,通過fx-485pc-if及fx2n-485bd與多臺plc從站連接(zui多16臺),每臺plc被賦予*的站號用以標志身份,上位機通過rs-485通信總線對plc進行控制。
3 通信協議



       fx2n系列plc通信采用異步格式,較常用的數據幀由1位起始位、7位數據位、1位停止位及1位校驗位組成,波特率為9600bps。傳輸數據以字節為單位,分為高4位和低4位,每4位轉化為1個ascii字符發送。以上位機從plc讀取數據為例。
      計算機方發送數據幀格式如表2所示:



      enq是請求通信標志;station no.代表plc站號,設定范圍00h-0fh;pc no. 是plc的cpu代號,fx系列為ffh;command是操作命令碼,具體內容列于表3;message wait time表示從命令發出到plc回應之間的等待時間,允許值從0-150ms,設定為00h-0fh;character area a為傳送字符串,包括位元件或字元件的首地址和單元字節個數; sum check code是和校驗碼,分為高4位和低4位。
      plc應答格式如表4所示。
      stx是幀開始字符;character area b為傳送數據,fx系列plc一次zui多可以傳送64比特即40h數據;etx為幀結束字符;其余含義同上。
      本程序的主要功能為,每隔一定時間(由用戶通過界面設定)按站號順序批量讀取plc中位元件y000-y017的狀態,將數據存放入數據庫plc表中。
      總共有2臺plc,對于站號為i 的plc,命令格式如表5所示。 
4  軟件編程
      軟件設計選用visualc++6.0作為開發平臺,利用其提供的mscomm控件,可以方便地實現plc與上位機的串行通信。該通信控件提供了使用rs232開發串行通信軟件的細則,使用事件驅動或查詢方式來解決開發通信軟件中遇到的問題。該控件有27個屬性,主要的屬性如表6所示。
      首先將mscomm控件加入工程,同時安裝1個系統定時器。通信控件m_mycom用于訪問串口、發送和接收數據;系統定時器用于控制每隔一定時間間由上位機向plc發送命令。通信程序部分代碼如下:







// 首先初始化通信端口 
bool cplccommdlg::oninitdialog()
{……
m_mycom.setcommport(1);  file://選擇com1
m_mycom.setinbuffersize(1024); file://設置輸入緩沖區的大小
m_mycom.setoutbuffersize(512);  file://設置輸出緩沖區的大小
m_mycom.setinputmode(1);//設置數據獲取方式
m_mycom.setsettings("9600,e,7,1");//設置通信參數
m_mycom.setinputlen(0);      file://設置讀取方式
if(!m_mycom.getportopen() );   
m_mycom.setportopen (true);   file://打開串口
stationno=0x30;
if(settimer(1,m_usertime,null)==0)
afxmessagebox("error setting,please check it!")

file://消息處理函數ontimer
void cplccommdlg::ontimer(uint nidevent) 

 byte receivedata[1024]; 
byte senddata[]={`0x05`,`0`,`i`,`f`,`f`,`w`,`r`,`a`,`y`,`0`,`0`,`0`,`0`,
`0`,`1`,`sumh`,`suml`};
if(stationno<0x31)
stationno++;
else 
stationno=0x30;
senddata[3]= stationno;
sumcheck(senddata,17)
 cbytearray array;
array.removeall();
array.setsize(17);
for(int k=0;k<17;k++)

array.setat(k,senddata[k]);

m_mycom.setoutput(colevariant(array));//發送命令
 ……//數據接收處理及加入數據庫操作

file://和校驗函數sumcheck
void cplccommdlg::sumcheck(byte temp[],int n)

int i;
byte sum=0x00,sumh=0xf0,suml=0x0f;
for(i=1;i<=n-3;i++)
sum+=temp[i];
suml= suml∑
sumh= sumh∑
sumh= sumh>>4;
temp[n-1]= suml;
temp[n-2]= sumh;

 
5  結論
      串行通信是目前計算機與其他設備之間重要的通信手段之一,本程序作為小型監控系統的重要組成部分,實現了上位機對多臺plc的實時監控,傳送數據準確,程序運行穩定。整個控制系統方便可靠,同時又節省了大筆投資,具有相當大的實用性。
全年征稿/資訊合作 聯系郵箱:1271141964@qq.com

免責聲明

  • 凡本網注明"來源:智能制造網"的所有作品,版權均屬于智能制造網,轉載請必須注明智能制造網,http://www.xashilian.com。違反者本網將追究相關法律責任。
  • 企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
  • 本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
  • 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。

<
更多 >

工控網機器人儀器儀表物聯網3D打印工業軟件金屬加工機械包裝機械印刷機械農業機械食品加工設備制藥設備倉儲物流環保設備造紙機械工程機械紡織機械化工設備電子加工設備水泥設備海洋水利裝備礦冶設備新能源設備服裝機械印染機械制鞋機械玻璃機械陶瓷設備橡塑設備船舶設備電子元器件電氣設備


我要投稿
  • 投稿請發送郵件至:(郵件標題請備注“投稿”)1271141964.qq.com
  • 聯系電話0571-89719789
工業4.0時代智能制造領域“互聯網+”服務平臺
智能制造網APP

功能豐富 實時交流

智能制造網小程序

訂閱獲取更多服務

微信公眾號

關注我們

抖音

智能制造網

抖音號:gkzhan

打開抖音 搜索頁掃一掃

視頻號

智能制造網

公眾號:智能制造網

打開微信掃碼關注視頻號

快手

智能制造網

快手ID:gkzhan2006

打開快手 掃一掃關注
意見反饋
關閉
企業未開通此功能
詳詢客服 : 0571-87858618
主站蜘蛛池模板: 娄烦县| 永城市| 思茅市| 弥勒县| 南皮县| 广东省| 敦化市| 潼南县| 海淀区| 商水县| 广平县| 上栗县| 栾城县| 邹平县| 贡觉县| 新龙县| 白山市| 扶绥县| 青龙| 湖口县| 南川市| 井研县| 格尔木市| 峨边| 山西省| 浦北县| 剑川县| 昂仁县| 富平县| 昌都县| 疏勒县| 和田县| 英超| 金塔县| SHOW| 阳新县| 朝阳市| 塘沽区| 安福县| 龙泉市| 临漳县|