九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
S7-200PLC與PC自由口通訊的多種實(shí)現(xiàn)方法,應(yīng)用案例,工控商務(wù)網(wǎng)
S7-200PLC與PC自由口通訊的多種實(shí)現(xiàn)方法
出處:西部工控網(wǎng)  |  時(shí)間:2007-3-31  |  閱讀:23

1  引言
西門子S7-200PLC是德國西門子公司生產(chǎn)的小型PLC。S7-200以其高可靠性、指令豐富、內(nèi)置功能豐富、強(qiáng)勁的通訊能力、較高的性價(jià)比等特點(diǎn),在工業(yè)控制領(lǐng)域中被廣泛應(yīng)用。S7-200PLC的突出特點(diǎn)之一是自由口通訊功能。如何實(shí)現(xiàn)S7-200PLC與個(gè)人計(jì)算機(jī)的互聯(lián)通信,是S7-200PLC應(yīng)用的技術(shù)關(guān)鍵。
可編程控制器與計(jì)算機(jī)之間的通訊一般是通過RS-422口或RS-232C口進(jìn)行的,信息交換的方式為字符串方式,運(yùn)用RS-232C或RS-422通道,容易配置一個(gè)與計(jì)算機(jī)進(jìn)行通信的系統(tǒng),將所有軟元件的數(shù)據(jù)和狀態(tài)用可編程控制器送入計(jì)算機(jī),由計(jì)算機(jī)采集這些數(shù)據(jù),進(jìn)行分析及運(yùn)行狀態(tài)監(jiān)測(cè)。用計(jì)算機(jī)改變可編程控制器設(shè)備的初始值和設(shè)定值,從而實(shí)現(xiàn)計(jì)算機(jī)與可編程控制器的直接控制,一旦確定了可編程控制器的控制指令,就能很方便地與計(jì)算機(jī)連接。

2  S7-200的自由口通訊模式
S7-200支持多種通訊模式,如點(diǎn)點(diǎn)接口(PPI)、多點(diǎn)接口(MPI)、Rrofibus DP等。PPI等通訊協(xié)議主要用于西門子系列產(chǎn)品之間的通訊以及對(duì)PLC編程。在自由口模式下,可由用戶控制串行通訊接口,實(shí)現(xiàn)用戶自定義的通訊協(xié)議。用戶可以用梯形圖程序調(diào)用接收中斷、發(fā)送中斷、發(fā)送指令(XMT)、接受指令(RCV)來控制通信操作。在自由口模式下,通信協(xié)議完全由梯形圖程序控制。
S7-200CPU上的通信口是與RS-485兼容的9針D型連接器PLC還提供了實(shí)現(xiàn) RS-485與 PC機(jī)上RS-232C相連接的PC/PPI電纜,利用它可以方便地實(shí)現(xiàn)S7-200系列PLC與PC之間的硬件連接。
S7-200的編程軟件為STEP7-Micro/WIN32,該軟件有STL、FBD和Ladder三種編程模式,有SIMATIC指令和IEC131-3指令兩種指令。本文所給出的范例是使用SIMATIC指令的STL編程。

3  S7-200 PLC端的通訊程序?qū)崿F(xiàn)
PLC程序分為主程序和中斷程序。主程序完成初始化通信口、開中斷、判斷、發(fā)送數(shù)據(jù)等功能,中斷程序完成接收和發(fā)送數(shù)據(jù)的功能。接收指令(RCV)啟動(dòng)或終止接收信息功能,必須為接收操作指定開始和結(jié)束條件。發(fā)送指令(XMT)在自由口模式下依靠通訊口發(fā)送數(shù)據(jù)。
3.1  控制字的選取
反映CPU工作方式的模式開關(guān)當(dāng)前位置的特殊存儲(chǔ)器位為SM0.7,它控制自由端口模式的進(jìn)入。當(dāng)SM0.7為0時(shí),模式開關(guān)處于TREM位置;當(dāng)SM0.7為1時(shí)模式開關(guān)處于RUN位置。而只有當(dāng)模式開關(guān)位于RUN位置時(shí),才允許進(jìn)行自由口通訊。SMB30是自由口模式控制字節(jié),用來設(shè)定校驗(yàn)方式、通訊協(xié)議、波特率等通訊參數(shù)(其它控制字的設(shè)定參閱有關(guān)書籍)。
3.2  程序的一些簡(jiǎn)單介紹
NETWORK1
LD  SM0.1   // 第一次掃描
MOVB  16#09,SMB30  
//自由口通訊模式:9600波特率,無奇偶校驗(yàn),8個(gè)數(shù)據(jù)位
MOVB  16#7C,SMB87 //接收信息狀態(tài)字節(jié)
MOVB  16#53,SMB88 
//設(shè)置信息的開始字符“S”
MOVB  16#45,SMB89 
//設(shè)置信息的結(jié)束字符“E”
MOVW  +5,SMW90   
//設(shè)定空閑行的時(shí)間間隔(ms)
MOVW  +179,SMW92 
//字符間/信息間定時(shí)器超時(shí)值(ms)
MOVB  60,SMB94  //接收字符的個(gè)數(shù)
NETWORK2
LD  SM0.1 MOVB 16#53,VB2499 
//設(shè)置接收和發(fā)送緩沖區(qū)的首地址
ATCH  發(fā)送完中斷,9    
//把發(fā)送完成中斷和發(fā)送完成中斷子程序連接起來
ATCH  接收完中斷,23  
//把接收完成中斷和接收完成中斷子程序連接起來
ENI    //允許中斷
PLC程序的主要流程框圖如圖1所示:

 

 

圖1     PLC程序流程

4  自由口通訊在PC 端程序?qū)崿F(xiàn)
為了充分利用計(jì)算機(jī)數(shù)據(jù)處理的強(qiáng)大功能,可以在上位機(jī)編寫程序來實(shí)現(xiàn)計(jì)算機(jī)與PLC的通訊??梢杂肰C或VB實(shí)現(xiàn)上位機(jī)和PLC的通訊。
4.1  利用VC6.0 或VC6.0 MSComm控件實(shí)現(xiàn)
MSComm控件Microsoft公司提供的簡(jiǎn)化的Windows下串行通訊編程的ActiveX控件,它為應(yīng)用程序提供了通過串口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法。PC機(jī)通過RS-232口與PLC進(jìn)行通信,該通信控件提供了使用RS-232開發(fā)串行通信軟件的細(xì)則,使用事件驅(qū)動(dòng)或查詢方式來解決開發(fā)通信軟件中遇到的問題。事件驅(qū)動(dòng)是一種強(qiáng)大的處理問題的方法,對(duì)事件發(fā)生的跟蹤和處理在通信軟件中用Oncomm來實(shí)現(xiàn),它包括檢測(cè)和處理通信錯(cuò)誤等;查詢方式則要求設(shè)計(jì)者自行讀CommEven值,并判斷發(fā)生何種事件,再對(duì)之進(jìn)行處理。該控件有許多重要的屬性,主要的屬性如附表所示。

 

附表     MSComm屬性

 


開發(fā)通信軟件只需上述幾個(gè)重要屬性設(shè)置好通信口,然后用SetOutput指令發(fā)送命令。按照通信協(xié)議,待PC機(jī)與PLC握手成功后,可按特定的數(shù)據(jù)格式通過GetInput或SetOutput來接收或發(fā)送數(shù)據(jù)。
4.2  利用VC6.0 CSerialPorts類實(shí)現(xiàn)
如果在程序中使用多個(gè)串口,而且還要做很復(fù)雜的處理工作,那么最好不用MSComm控件。如果這時(shí)候不愿意自己編寫底層函數(shù),就可以使用CSerial Ports類。
這個(gè)類是由Remon編寫的。其中詳細(xì)的功能可以在其網(wǎng)站上查詢。
將SerialPort.h 和 SerialPort.cpp兩個(gè)類文件復(fù)制到工程文件夾中,用 Project -> Add to project -> Files命令將上述兩個(gè)文件加入工程。
串口的初始化:
在這種方式下,串口的初始化通常放在一個(gè)自定義的函數(shù)中,這樣可以使用多不同的端口,下面以初始化COM的為例給出部分代碼。
void CtestView::OpenCom2()
{   DCB dc;
dc.DCBlength = sizeof(DCB);
dc.BaudRate = CBR_9600;  
//數(shù)據(jù)傳輸速率為9600
dc.ByteSize = 8;  
//8位數(shù)據(jù)位
dc.StopBits = ONESTOPBIT;   
//1位停止位
dc.Parity = NOPARITY;  
//無校驗(yàn)
}     
其中DCB(設(shè)備控制塊)是一種數(shù)據(jù)結(jié)構(gòu),用以實(shí)現(xiàn)串口屬性的設(shè)置。
數(shù)據(jù)的接收和發(fā)送:
數(shù)據(jù)接收是調(diào)用了ReadByte函數(shù),每次讀取一個(gè)BYTE型變量,多個(gè)數(shù)據(jù)的讀取可以通過循環(huán)實(shí)現(xiàn)。數(shù)據(jù)發(fā)送是調(diào)用WriteByte函數(shù),每次只能發(fā)送一個(gè)無符號(hào)的char型或者與之等價(jià)的數(shù)據(jù),多個(gè)數(shù)據(jù)可以通過循環(huán)實(shí)現(xiàn)。
4.3  利用PCommPro應(yīng)用軟件實(shí)現(xiàn)
PLC通訊時(shí),PC機(jī)還可采用的PCommPro應(yīng)用軟件,該軟件是通過Win32初級(jí)API函數(shù)的調(diào)用來控制和使用通訊端口。與VB/VC中的MComm控件相比較,使用較復(fù)雜些,但通訊效率高輸出控制較好。
在程序中PC機(jī)接收數(shù)據(jù)采用回調(diào)函數(shù)的處理方式,即欲建立事件,需給定一個(gè)函數(shù)的地址,當(dāng)事件發(fā)生時(shí),Pcomm便到該回調(diào)函數(shù)所在的地址去執(zhí)行該程序代碼。所謂回調(diào)函數(shù)是指當(dāng)調(diào)用一個(gè)函數(shù)時(shí)(尤其是API),該函數(shù)會(huì)要求調(diào)用者提供一個(gè)函數(shù)的地址,當(dāng)被調(diào)用函數(shù)執(zhí)行后,會(huì)再去調(diào)用此函數(shù),目的是將結(jié)果傳送回來讓用戶知道,或是該被調(diào)用函數(shù)需要另一個(gè)參考的函數(shù)運(yùn)算等,這種做法就稱為回調(diào)。Pcomm中的回調(diào)函數(shù)主要介紹以下幾種。
Sio_term_irq:當(dāng)收到終止字符時(shí)引發(fā)事件程序;
Sio_cnt_irq:接收到固定字符時(shí)引發(fā)事件;
Sio_modem_irq:當(dāng)硬件線路的電壓發(fā)生變化時(shí),引發(fā)事件,硬件線路包括DCD,DSR,CTS,RI4支管腳;
Sio_break_irq:當(dāng)接到中斷信號(hào)時(shí)引發(fā)事件。
在程序設(shè)計(jì)中要根據(jù)具體的情況來選擇不同的回調(diào)函數(shù)。例:數(shù)據(jù)以ASCII值形式傳遞時(shí),可以使用Sio_term_irq函數(shù),即當(dāng)收到終止字符時(shí)引發(fā)事件程序,也可以使用其它回調(diào)函數(shù)。但當(dāng)傳遞的數(shù)據(jù)以字節(jié)形式表示時(shí),使用Sio_term_irq函數(shù)可能會(huì)引發(fā)一些問題,是因?yàn)閭鬟f的數(shù)據(jù)值可能與函數(shù)所設(shè)置的終止字符相同,可能造成接收數(shù)據(jù)的不完整。

 

 

 

圖2     PC的主要程序流程框圖
應(yīng)用到的其它函數(shù)還有如下:
sio_open():打開通信端口;
sio_ioctl():設(shè)置傳輸?shù)亩丝趨?shù),給定的參數(shù)有三個(gè),有端口號(hào)碼、波特率和參數(shù)模式(由數(shù)據(jù)位、停止位和奇偶檢驗(yàn)位3部分組成);
sio_read():從接收緩沖區(qū)中讀取字符串;
sio_write():把發(fā)送緩沖區(qū)中的數(shù)據(jù)發(fā)送出去;
sio_close():關(guān)閉通訊端口,此操作會(huì)導(dǎo)致所有的接收和傳送操作都停止。
PC程序的主要流程框圖如圖2所示。
 
5  結(jié)束語
S7-200的自由口通訊方式,使用戶可以通過PLC指令自己定義通訊協(xié)議,從而與任何公開通訊協(xié)議的RS-422或RS-232C接口設(shè)備進(jìn)行通訊,使通訊范圍大為增加,控制系統(tǒng)配制更加靈活。隨著計(jì)算機(jī)的普及,人們更希望在享受PLC高性能控制功能的同時(shí),利用個(gè)人計(jì)算機(jī)大量豐富的軟件,將PLC的信息轉(zhuǎn)換成各類畫面顯示,并可以對(duì)PLC的參數(shù)進(jìn)行實(shí)時(shí)修改,達(dá)到管理、控制一體化。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
三菱plc怎樣通過485通訊控制多臺(tái)變頻器
想學(xué)習(xí)下如何將PLC發(fā)送的指令讓軟件接收到?
PLC現(xiàn)場(chǎng)工程師工作指南
如何簡(jiǎn)單測(cè)試三菱FX系列PLC485通訊
臺(tái)達(dá)變頻器以及臺(tái)達(dá)PLC通訊功能的實(shí)現(xiàn)
三菱FX2N PLC串行通訊指令(FNC 80 RS)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服