產(chǎn)品分類品牌分類
-
西門(mén)子PLC模塊 西門(mén)子CPU 西門(mén)子DP電纜 西門(mén)子模塊 西門(mén)子變頻器 西門(mén)子電源 西門(mén)子連接器 西門(mén)子軟啟動(dòng) 西門(mén)子軸卡 西門(mén)子驅(qū)動(dòng)器 西門(mén)子導(dǎo)軌 西門(mén)子交換機(jī) 西門(mén)子觸摸屏 西門(mén)子PLC 西門(mén)子工控機(jī) 西門(mén)子數(shù)控系統(tǒng) 西門(mén)子NCU備件 ET200 DP接頭 S7-1500 S7-400 S7-300 1200 200SMART 200CN PLC 電線電纜
西門(mén)子6ES7390-1BC00-0AA0運(yùn)城西門(mén)子S7-300代理商
西門(mén)子6ES7390-1BC00-0AA0運(yùn)城西門(mén)子S7-300代理商
通訊功能的實(shí)現(xiàn)
在Windows環(huán)境下,,實(shí)現(xiàn)PC與單片機(jī)的通訊可利用Windows的通訊API函數(shù)或者利用VC++(或其它語(yǔ)言)的標(biāo)準(zhǔn)通訊函數(shù)_inp、_outp來(lái)實(shí)現(xiàn),。但上述兩種方法比較繁瑣,,而采用ActiveX控件MSComm32來(lái)實(shí)現(xiàn)則非常方便。該控件用事件的方式簡(jiǎn)化了對(duì)串口操作的編程,,并可設(shè)置串行通信的數(shù)據(jù)發(fā)送和接收,,還可對(duì)串口狀態(tài)及串口通信的信息格式和協(xié)議進(jìn)行設(shè)置。其初始化程序如下:一般情況下,,PC要與多個(gè)單片機(jī)89C51系統(tǒng)進(jìn)行主從式通訊,,為了區(qū)分各單片機(jī)系統(tǒng),可以使89C51采用串口工作方式3,,即11位異步接收/發(fā)送方式,,該方式的有效數(shù)據(jù)為9位,其中第9位為地址/數(shù)據(jù)信息的標(biāo)志位,,其作用是使從機(jī)據(jù)此判斷發(fā)送的數(shù)據(jù)是否為地址,,從而實(shí)現(xiàn)多機(jī)操作。但現(xiàn)在由于采用的是MSCOMM控件來(lái)實(shí)現(xiàn)PC機(jī)和單片機(jī)之間的通訊,,這是一種標(biāo)準(zhǔn)的10位串口通信方式,,即8位標(biāo)準(zhǔn)數(shù)據(jù)位和該數(shù)據(jù)的起始位、停止位各1位,。因此二者格式不相符,,故很難利用上述方案。因此可考慮將單片機(jī)串口設(shè)為工作方式1,,即改為10位異步接收/發(fā)送方式來(lái)解決,,其通訊流程如下:
首先發(fā)通信開(kāi)始標(biāo)志,接著發(fā)送需要操作的單片機(jī)系統(tǒng)地址,然后發(fā)送顯示工作命令字,,該命令包括2個(gè)字節(jié),,前一字節(jié)用于設(shè)定顯示方式和滾動(dòng)方向,后一字節(jié)則用于設(shè)定顯示速度,。再往下是傳送顯示內(nèi)容的點(diǎn)陣數(shù)據(jù),,zui后對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)。該通訊規(guī)約非常簡(jiǎn)便,,能夠較好的解決上述問(wèn)題,,從而實(shí)現(xiàn)PC機(jī)與多單片機(jī)之間的主從式通訊及對(duì)顯示的控制。
需要注意的是,,當(dāng)顯示內(nèi)容需要改變時(shí),,為了避免在單片機(jī)串行中斷接收數(shù)據(jù)時(shí),顯示屏出現(xiàn)亂碼,,應(yīng)使顯示屏?xí)翰伙@示(處于“黑屏"狀態(tài)),,直到數(shù)據(jù)接收*,串行中斷處理結(jié)束時(shí)再顯示,。
漢字字模的提取非常關(guān)鍵,,本文的字模數(shù)據(jù)取自UCDOS下的字庫(kù)文件HZK16。關(guān)于這方面的介紹較多,,文獻(xiàn)[2]給出了較為具體的在VC下提取漢字字模的方案,,這里不再贅述。對(duì)于特殊字符或圖形點(diǎn)陣數(shù)據(jù)的提取,,簡(jiǎn)便的方法可以先做一個(gè)BMP文件,,然后用一些取模軟件(如字模提取v2.1)來(lái)獲得。為了顯示方便,,點(diǎn)陣數(shù)據(jù)的格式應(yīng)為n×(16×8),,不足要求的則應(yīng)以0數(shù)據(jù)補(bǔ)充。 b.動(dòng)態(tài)效果模擬顯示
為了方便調(diào)節(jié)LED的顯示效果,,筆者在PC機(jī)的控制界面上設(shè)計(jì)了LED顯示屏的模擬顯示,,它同實(shí)際的顯示效果*一樣。用戶可以設(shè)定顯示的模式,,并調(diào)節(jié)顯示速度,,然后在界面上對(duì)顯示效果進(jìn)行預(yù)覽,同時(shí)還可以隨時(shí)修改和設(shè)定參數(shù),,因而十分方便簡(jiǎn)捷,。
為此,可先在界面上描繪出虛擬的LED顯示屏,,由于實(shí)際的顯示屏為160×16點(diǎn)陣,,故須在界面 上設(shè)定相同的區(qū)域,。
實(shí)現(xiàn)動(dòng)態(tài)顯示效果的方法和以上幾種基本類似,這里以滾動(dòng)顯示為例作一說(shuō)明,。對(duì)于需要滾動(dòng)的文字,,可以將其設(shè)置為位圖格式,暫存于內(nèi)存中,,然后利用VC 提供的位圖拷貝函數(shù)BitBlt將位圖復(fù)制到顯示位置,。對(duì)于特殊字符或圖形,則可以直接利用BitBlt函數(shù)調(diào)用到顯示位置,。然后在類CLEDDlg的 OnTimer函數(shù)中調(diào)用該函數(shù),以實(shí)現(xiàn)文字的滾動(dòng)顯示,。另外,,也可以通過(guò)設(shè)定不同的響應(yīng)時(shí)間間隔來(lái)改變文字的滾動(dòng)速度
S7-300 以太網(wǎng)模塊在 Profinet 網(wǎng)絡(luò)中既可以作為控制器也可以作為設(shè)備,當(dāng) Profinet 連接中斷時(shí),,可以使用下面的方法來(lái)判斷,。本文以 CP343-1 作為控制器為例,如圖1,,兩個(gè)設(shè)備分別為ET200SP和ET200M,。
( 37 KB )
圖01
Profinet 通訊中現(xiàn)場(chǎng)設(shè)備作為數(shù)據(jù)的提供者,會(huì)向控制器發(fā)送數(shù)據(jù)到 I 區(qū),。在發(fā)送的 PN 的報(bào)文中,,按照槽位的順序添加內(nèi)容,輸入模塊槽位:輸入數(shù)據(jù)+IOPS,;輸出模塊槽位:IOCS,。IOPS 表示 IO 數(shù)據(jù)的提供狀態(tài)(數(shù)據(jù)是好的還是壞的);IOCS表示IO 數(shù)據(jù)的消費(fèi)狀態(tài)(Q 數(shù)據(jù)使用狀況),。如圖2,,CP 的PN 通訊程序塊 FC11 "PNIO_SEND"和 FC12 "PNIO_RCIV" 提供了IOCS/IOPS 的輸出管腳,可以用于通訊狀態(tài)的評(píng)估,。
圖02
IOCS/IOPS 的有效長(zhǎng)度和通訊的數(shù)據(jù)長(zhǎng)度有關(guān),,每個(gè)字節(jié)的輸入/輸出,對(duì)應(yīng)一位IOCS/IOPS 輸出,。如圖3,,ET200SP 站點(diǎn),輸入地址0-7 8個(gè)字節(jié),,對(duì)應(yīng) IOPS 8位,,即MB202;輸出地址0,,一個(gè)字節(jié),,對(duì)應(yīng)IOCS 一位,,即M200.0。
圖03
如圖4,,ET200M 站點(diǎn),,輸入地址8 ,1個(gè)字節(jié),,對(duì)應(yīng) IOPS 1位,,順序后延即M203.0;輸出地址1,,一個(gè)字節(jié),,對(duì)應(yīng)IOCS 一位,順序后延即M200.1,。
圖04
如圖5-6,,如果現(xiàn)場(chǎng)設(shè)備只是發(fā)生故障,通訊沒(méi)有中斷,,例如 ET200SP AI模塊被拔出,,只有相應(yīng)的 IOPS 位置位,即MB202,。
圖05
圖06
如果此時(shí)現(xiàn)場(chǎng)設(shè)備和控制器的連接中斷,,則現(xiàn)場(chǎng)設(shè)備相應(yīng)的所有 IOPS/IOCS 都會(huì)置位,如圖7,。此時(shí),,ET200M IOPS/IOCS 位全部置位,ET200M 此時(shí)可能掉站,。