1  引言
隨著PLC應(yīng)用范圍的不斷擴(kuò)大,PLC與PC之間通信技術(shù)的應(yīng)用需求越來(lái)越廣泛。通過(guò)PLC的編程口進(jìn)行通訊不僅可以減少系統(tǒng)的成本及復(fù)雜性,同時(shí)可以減少PLC方面軟件的復(fù)雜程度和編程量。本文根據(jù)實(shí)際工程中的經(jīng)驗(yàn)進(jìn)行總結(jié),介紹了利用VC++中MFC實(shí)現(xiàn)PC與松下FP0系列PLC編程口進(jìn)行串行通信的程序設(shè)計(jì)基本方法

2&">

欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

技術(shù)頻道

基于VC5.0的PC與松下PLC的通信及其應(yīng)用

1 引言
隨著PLC應(yīng)用范圍的不斷擴(kuò)大,PLC與PC之間通信技術(shù)的應(yīng)用需求越來(lái)越廣泛。通過(guò)PLC的編程口進(jìn)行通訊不僅可以減少系統(tǒng)的成本及復(fù)雜性,同時(shí)可以減少PLC方面軟件的復(fù)雜程度和編程量。本文根據(jù)實(shí)際工程中的經(jīng)驗(yàn)進(jìn)行總結(jié),介紹了利用VC++中MFC實(shí)現(xiàn)PC與松下FP0系列PLC編程口進(jìn)行串行通信的程序設(shè)計(jì)基本方法

2 PC與FP0 PLC之間的通信協(xié)議和接口
在一個(gè)規(guī)模較大的紡織工業(yè)控制系統(tǒng)中,常常有幾十個(gè)、幾百個(gè)甚至更多的測(cè)溫和控制對(duì)象。即使速度很高的系統(tǒng),也很難滿足要求。為了降低危險(xiǎn),提高可靠性,必須將任務(wù)分散,而分散的設(shè)備需要通過(guò)一定的手段連接起來(lái),其中數(shù)據(jù)通信和系統(tǒng)互連是該系統(tǒng)的關(guān)鍵技術(shù)之一。松下FP0系列PLC具有較強(qiáng)的通信功能,可以適合各種工業(yè)自動(dòng)化網(wǎng)絡(luò)的不同需要, 其中包括以太網(wǎng)協(xié)議及通用接口、H型鏈接通信系統(tǒng)(H-LINK)、P型鏈接系統(tǒng)(OPTICAL LINK)、W型鏈接系統(tǒng)(WIRE-LINK)和C-NET鏈接系統(tǒng),還有遠(yuǎn)程I/O通信系統(tǒng)(REMOTE I/O),它們通過(guò)RS-485、RS-232或?qū)S镁W(wǎng)絡(luò)插座在PLC-PLC、計(jì)算機(jī)與PLC之間進(jìn)行通信。但是要利用這些系統(tǒng)協(xié)議,必須采用專用高級(jí)通信單元,這勢(shì)必增加系統(tǒng)的成本。為了節(jié)省開(kāi)支,紡織工業(yè)系統(tǒng)可以直接采用松下電工最基礎(chǔ)的專用通信協(xié)議-NEWTOCOL。
NEWTOCOL分為兩部分:一是NEWTOCOL-COM,即關(guān)于計(jì)算機(jī)通信的協(xié)議;二是NEWTOCOL-DATA,即關(guān)于數(shù)據(jù)傳輸協(xié)議。
2.1 NEWTOCOL-COM的幀格式
(1) 命令發(fā)送幀


(2) 正確響應(yīng)幀
img]周奉磊-b2.jpg border=0>
(3) 錯(cuò)誤響應(yīng)幀
img]周奉磊-b3.jpg border=0>
2.2 NEWTOCOL-DATA的幀格式
(1) 命令發(fā)送幀
img]周奉磊-b4.jpg border=0>
(2) 正確響應(yīng)幀
img]周奉磊-b5.jpg border=0>
(3) 錯(cuò)誤響應(yīng)幀
img]周奉磊-b6.jpg border=0>
通過(guò)該協(xié)議可更加快捷地傳送系統(tǒng)所需的數(shù)據(jù),設(shè)置PLC所需的參數(shù)。FP0 PLC與上位機(jī)鏈接通信協(xié)議如圖1所示:

圖1 FP0 PLC 與上位機(jī)鏈接通信協(xié)議

3 通信程序設(shè)計(jì)
在PC機(jī)和松下FP0系列PLC進(jìn)行串行通信時(shí),由于PC與PLC之間的信息傳送是通過(guò)PLC編程口實(shí)現(xiàn)的,采用的是FP0 PLC專用協(xié)議通信指令。因此,在PC編程方面需要嚴(yán)格的遵循PLC編程口通訊協(xié)議。具體實(shí)現(xiàn)介紹如下:
3.1 串口設(shè)備的打開(kāi)
在Visual C++中,利用MFC CFile類來(lái)實(shí)現(xiàn)串行通訊。這種通信方式與訪問(wèn)磁盤(pán)普通文件沒(méi)有太大不同。打開(kāi)串口設(shè)備需作以下操作:
CFile file;
CFileException e
File.open(
portName, // example "com1",com2"
CFile::modeReadWrite,
&e);
3.2 串口設(shè)備的初始化
串行端口創(chuàng)建時(shí),必須對(duì)其進(jìn)行設(shè)置以匹配與其對(duì)話的設(shè)備。FP0系列PLC的波特率為固定的9600bps,奇偶校驗(yàn)采用奇校驗(yàn),1位停止位,8位數(shù)據(jù)位。一般地,可用如下程序設(shè)置它們:
DCB dcb;
::GetCommState((HANDLE)file.m_hFile,&dcb);
dcb.BaudRate=9600;
dcb.StopBits=1;
dcb.ByteSize=8;
dcb.Parity=1;
::setCommState((HANDLE)file.m_hFile,&dcb);
為了更好的控制端口可以利用SetCommTimeouts()函數(shù)打開(kāi)或關(guān)閉串口超時(shí)功能,具體程序如下:
COMMTIMEOUTS cto;
::GetCommTimeouts((HANDLE)file.m_hFile,&ct0);
cto.ReadIntervalTimeout=0;
cto.ReadTotalTimeoutMultiplier=0;
cto.ReadTotalTimeoutConstant=0;
cto.WriteTotalTimeoutMultiplier=0;
cto.WriteTotalTimeoutConstant=0;
::SetCommTimeouts((HANDLE)file.m_hFile,&cto);
3.3 PC與FP0 PLC之間的通信實(shí)現(xiàn)
在FX2系列PLC與PC機(jī)的通信中,數(shù)據(jù)是以幀為單位發(fā)送和接收的。其中字符ENQ(0x05)、ACK(0x06)、
和NAK(0x15)作為單個(gè)字符,可以構(gòu)成單字符幀。若通訊正常,則應(yīng)答字符$;若通信有錯(cuò),則應(yīng)答字符!。其余的字符在發(fā)送和接收時(shí)必須用字符%和CR分別表示該字符幀的起始標(biāo)志和結(jié)束標(biāo)志,否則將構(gòu)成幀錯(cuò)。一個(gè)多字符幀由%、地址碼、站號(hào)、數(shù)據(jù)、和校驗(yàn)以及CR五部分組成,其中和校驗(yàn)值是其初值為0,然后從起始符開(kāi)始與該幀報(bào)文中每一字節(jié)按位進(jìn)行異或運(yùn)算得到。
(1) 應(yīng)用MFC CFile類實(shí)現(xiàn)對(duì)串口設(shè)備的讀、寫(xiě)操作的代碼
//讀串口
char m_Readbuff[UINT n];
uint nByte=file.read(
&m_ReadBuff, //緩存儲(chǔ)沖
UINT nCount //所讀字節(jié)數(shù)
//寫(xiě)串口
char m_WriteBuff[UINT n];
file.Write(
&m_WriteBuff, //存儲(chǔ)緩沖
UINT nCount //縮寫(xiě)字節(jié)數(shù)
);
(2) PC機(jī)實(shí)現(xiàn)與PLC通信的程序代碼
char m_WriteBuff[10];
char m_ReadBuff[10];
UINT nByte=0;
m_WriteBuff[0]=0x05 //ENQ
//寫(xiě)串口
file.Write(
m_WriteBuff, //存儲(chǔ)緩沖
//所讀字節(jié)數(shù)
);
//讀串口
nByte=file.Read(
m_ReadBuff, //存儲(chǔ)緩沖
//所寫(xiě)字節(jié)數(shù)
);
switch (m_ReadBuff[0])
{
case : 0x24 //應(yīng)答$,通信正常
//添加相關(guān)處理代碼
break;
case : 0x21
//應(yīng)答!,通訊故障
//添加相關(guān)處理代碼
break;
}
3.4 PC對(duì)PLC內(nèi)各軟設(shè)備進(jìn)行讀、寫(xiě)操作
FP0系列PLC的所有開(kāi)關(guān)量輸入、輸出以及各軟設(shè)備對(duì)PC機(jī)都是透明的,只有當(dāng)PLC的計(jì)時(shí)器和計(jì)數(shù)器的設(shè)定值采用常數(shù)時(shí),以及文件寄存器內(nèi)的數(shù)據(jù),PC機(jī)不能對(duì)其進(jìn)行讀寫(xiě)。不論P(yáng)LC處在“STOP”狀態(tài)還是“RUN”狀態(tài),PC機(jī)都可以按1.1所列的命令對(duì)PLC進(jìn)行讀、寫(xiě)操作。這里僅給出PC機(jī)與PLC通信所用多字符幀的格式及簡(jiǎn)單示例,實(shí)際應(yīng)用時(shí)只需將多字符幀中的字符ASCII碼(十六進(jìn)制)按順序賦予相應(yīng)的字符數(shù)組
m_WriteBuff,m_ReadBuff,即可實(shí)現(xiàn)對(duì)PLC的操作。
(1) 讀操作

img]周奉磊-b7.jpg border=0>


(2) 寫(xiě)操作
微機(jī)對(duì)PLC軟設(shè)備進(jìn)行寫(xiě)操作的多字符幀的編制格式如下表所示:

img]周奉磊-b8.jpg border=0>


PLC接收到寫(xiě)操作多字符幀格式后,若接收到數(shù)據(jù)有效,則應(yīng)答$(0x24),該字符幀如下表所示:

img]周奉磊-b9.jpg border=0>


若接收數(shù)據(jù)無(wú)效或和校驗(yàn)出錯(cuò),則應(yīng)答字符!(0X21),該字符幀如下表所示:

img]周奉磊-b10.jpg border=0>


3.5 關(guān)閉串口設(shè)備
PC機(jī)與PLC通信完畢后,PC機(jī)關(guān)閉一個(gè)已打開(kāi)的串口設(shè)備只需如下一條語(yǔ)句即可完成。
File.Close();

4 應(yīng)用實(shí)例
以上介紹了利用MFC實(shí)現(xiàn)PC與FX2系列PLC串行通訊的基本方法及其關(guān)鍵部分程序代碼。上面的程序代碼為基礎(chǔ),不僅可以編制用于以PLC為現(xiàn)場(chǎng)主控機(jī)的監(jiān)控系統(tǒng)軟件,而且可編制出微機(jī)與其他具有串行通信能力設(shè)備的串行通信程序。本人已成功使用VC5.0實(shí)現(xiàn)PLC與上位機(jī)之間的通信,并應(yīng)用于青島大學(xué)紡織服裝學(xué)院開(kāi)發(fā)的掉毛量測(cè)試儀。該測(cè)試儀控制系統(tǒng)采用PLC 控制步進(jìn)電機(jī)方案,有效地提高了工作效率,使操作人員通過(guò)PC的顯示可以監(jiān)測(cè)并控制儀器的工作。兔毛織物掉毛量測(cè)試儀已可靠運(yùn)行一年,實(shí)踐證明它具有控制靈活、使用簡(jiǎn)單、功能擴(kuò)充方便、抗干擾性能強(qiáng)的特點(diǎn)。沒(méi)有出現(xiàn)任何通訊連接的問(wèn)題。


文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

      9000px;">

          日韩欧美在线网站| 中文字幕不卡的av| 欧美一区二区三区啪啪| 亚洲精品一区二区三区影院| 国产精品久久99| 亚洲综合激情网| 亚洲一区二区三区中文字幕在线| 久久爱www久久做| 捆绑调教一区二区三区| 91精彩视频在线| 久久蜜臀中文字幕| 色综合久久综合中文综合网| 成人91在线观看| 91成人看片片| 日韩免费观看高清完整版在线观看| 国产欧美精品一区二区色综合 | 亚洲免费资源在线播放| 日本亚洲视频在线| va亚洲va日韩不卡在线观看| 制服丝袜中文字幕一区| 亚洲人成网站在线| 国产自产2019最新不卡| 欧美久久高跟鞋激| 9人人澡人人爽人人精品| 一区二区三区四区精品在线视频| 日韩一区二区三区免费看| 99久久久精品免费观看国产蜜| 麻豆精品久久久| 一区二区日韩电影| 国产欧美日韩在线观看| 91精品国产综合久久香蕉麻豆 | 麻豆精品在线观看| 亚洲人成亚洲人成在线观看图片| 日韩亚洲欧美在线| 欧美日韩综合不卡| 成人免费av在线| 奇米色777欧美一区二区| 怡红院av一区二区三区| 国产午夜精品在线观看| 国产日本欧美一区二区| 日韩精品免费视频人成| 91色|porny| 国产精品萝li| 豆国产96在线|亚洲| 波波电影院一区二区三区| 精品毛片乱码1区2区3区 | 97国产精品videossex| 国产精品免费免费| 欧美久久久影院| 婷婷国产v国产偷v亚洲高清| 欧美日韩一区 二区 三区 久久精品| 国产精品久久久久影院亚瑟 | 欧美精品亚洲一区二区在线播放| 亚洲女同ⅹxx女同tv| 国产在线播放一区三区四| 国产综合一区二区| 欧美日韩日日夜夜| 亚洲五月六月丁香激情| 日本乱人伦一区| 国产成人午夜精品影院观看视频| 国产精品一区2区| 欧美一区二区视频网站| 欧美日韩国产高清一区二区 | 日韩视频一区在线观看| 一区二区三区四区亚洲| 国产综合一区二区| 久久久久久毛片| 日产欧产美韩系列久久99| 欧美精三区欧美精三区| 91麻豆免费在线观看| 亚洲尤物在线视频观看| 欧美电视剧在线观看完整版| 欧美日韩一区 二区 三区 久久精品| 午夜精品久久久久久久久久| 国产精品久久777777| 久久综合av免费| 欧美日韩卡一卡二| 欧美性大战久久久久久久蜜臀| 成人激情免费网站| 日韩一区二区三区av| 亚州成人在线电影| 久久亚洲影视婷婷| 在线观看亚洲精品视频| 欧美大片拔萝卜| 国产999精品久久久久久绿帽| 中文字幕一区二区三区在线不卡 | 91福利在线导航| 久久精品久久精品| 国产精品白丝在线| 日韩欧美一级二级| 69成人精品免费视频| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品美女久久久久久| 欧美亚洲另类激情小说| 久久er99热精品一区二区| 国产精品国产成人国产三级| 欧美在线播放高清精品| 国产激情精品久久久第一区二区| 亚洲丝袜美腿综合| 精品久久久久久久久久久久包黑料| 94-欧美-setu| 国产最新精品免费| 91精品国产综合久久国产大片 | 26uuuu精品一区二区| 色综合久久久久综合| 韩国成人精品a∨在线观看| 亚洲图片激情小说| www日韩大片| 欧美三级乱人伦电影| 国产精品久久久久婷婷| 精品国产凹凸成av人导航| 欧美日韩一卡二卡| 一本大道综合伊人精品热热| 国产精品小仙女| 狠狠色狠狠色合久久伊人| 欧美人狂配大交3d怪物一区| 国产一区二区h| 99久久免费精品高清特色大片| 欧美精品日日鲁夜夜添| 欧美激情资源网| 日本伊人精品一区二区三区观看方式| 国产精品一区不卡| 91精品国产入口在线| 亚洲国产精品v| 日本欧美在线观看| 99国产欧美另类久久久精品| 日韩欧美一二区| 一区二区三区毛片| 成人亚洲一区二区一| 91精品国产麻豆国产自产在线| 国产精品美日韩| 综合婷婷亚洲小说| 日韩一区二区在线看| 亚洲成人av一区| 欧美一区二区在线播放| 成人免费在线视频观看| 蜜桃视频一区二区三区在线观看| 99精品国产99久久久久久白柏| 欧美国产在线观看| 韩国视频一区二区| 欧美三级中文字幕在线观看| 性做久久久久久| 欧美大片一区二区三区| 91网站在线播放| 亚洲综合在线视频| 久久精品一区八戒影视| 色猫猫国产区一区二在线视频| 久久影院电视剧免费观看| 久久精品视频在线免费观看| 日韩小视频在线观看专区| 国产精品成人一区二区艾草| 国产精品正在播放| 午夜影院在线观看欧美| 欧美精品一区二区高清在线观看| 日本欧美一区二区三区乱码| 久久人人97超碰com| 国产人伦精品一区二区| 亚洲一区在线观看免费观看电影高清| 久久精品av麻豆的观看方式| 91精品国产综合久久福利软件 | 天堂成人国产精品一区| 本田岬高潮一区二区三区| 国产一区不卡视频| 欧美性大战xxxxx久久久| 亚洲欧美一区二区三区久本道91| 粉嫩蜜臀av国产精品网站| 国产丝袜在线精品| 99re视频精品| 国产一区三区三区| 成人激情校园春色| 欧洲色大大久久| 欧美xxxxxxxx| 国产精品三级久久久久三级| 4438x成人网最大色成网站| 久久综合久久鬼色| 国产精品伦一区二区三级视频| 亚洲精品高清视频在线观看| 免费久久精品视频| 成人国产亚洲欧美成人综合网| 在线观看亚洲a| 国产成人精品午夜视频免费| 成人av网站免费| 中文字幕一区二| 美女一区二区三区在线观看| 91蜜桃网址入口| 欧美xxxx在线观看| 欧美美女一区二区在线观看| 欧美高清在线视频| 日本怡春院一区二区| 色久综合一二码| 欧美精品一区二区三区蜜桃| 亚洲一区精品在线| av一区二区三区黑人| 欧美va在线播放| 日本欧美久久久久免费播放网| 不卡在线视频中文字幕| 26uuu久久天堂性欧美| 男女男精品网站| 欧美日韩精品一区二区三区四区| 中文字幕亚洲在|