s7200典型程序例子_第1頁(yè)
s7200典型程序例子_第2頁(yè)
s7200典型程序例子_第3頁(yè)
s7200典型程序例子_第4頁(yè)
s7200典型程序例子_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、本章概述節(jié)內(nèi)容頁(yè)H.1模擬電位器H2H.2怎樣使用高速計(jì)數(shù)器H6H.3自由通信口模式的簡(jiǎn)單應(yīng)用H10H.4處理脈寬調(diào)制H13H.5可逆電動(dòng)機(jī)起動(dòng)器電路適用于改變?nèi)嘟涣鞲袘?yīng)電動(dòng)機(jī)旋轉(zhuǎn)方向H16H.6步執(zhí)行順序(事件鼓定時(shí)器)H19H.7S7-200用自由通信口模式和并行打印機(jī)連接H23通過(guò)自由通信口模式接受條形碼閱讀器的信息H27H.9集成脈沖輸出通過(guò)步進(jìn)電機(jī)進(jìn)行定位控制H31H.10SIMATIC S7-221通過(guò)自由通信口模式控制賀氏(Hayes)調(diào)制解調(diào)器H37幾臺(tái)SIMATIC S7-200 PLC使用自由通信口模式連接在一個(gè)遠(yuǎn)程I/O網(wǎng)絡(luò)上H43S7-224與SIMOVERT電機(jī)驅(qū)動(dòng)

2、器之間的自由通信口通信接口H-54用S7-200 CPU 224 DC/DC/DC進(jìn)行定位控制,并具有位置監(jiān)視和位置校正H-64用S7-200實(shí)現(xiàn)PID控制H-80H.15模擬量輸入的處理H-92H.16S7-200與PC之間的連接:從Windows應(yīng)用程序中讀數(shù)據(jù)H-98H.1模擬電位器概述本例包含了有關(guān) SIMATIC S7-200 的模擬電位器(POT)的使用信息。電位器的位置轉(zhuǎn)換為 0 至 255 之間的數(shù)字值,然后,存入兩個(gè)特殊存儲(chǔ)器字節(jié) SMB28 和 SMB29 中,分別對(duì)應(yīng)電位器0和電位器1 的值。需要一把小螺絲刀用以調(diào)整電位器的位置。本應(yīng)用示例介紹了使用模擬電位器調(diào)整定時(shí)器設(shè)

3、定值的三種方案。例圖模擬電位器程序框圖首次掃描初始化所有緩沖區(qū)主程序開(kāi)始POT0值裝入AC1和T35調(diào)用SBR1調(diào)用SBR2從POT0讀PV值裝入T33從POT1讀PV值裝入T34T35到時(shí)后:AC2加1QB0顯示 T35復(fù)位T33到時(shí)后:AC2加1QB0顯示 T33復(fù)位T35到時(shí)后:VW20加1QB1顯示 T34復(fù)位主程序結(jié)束10. 2(與非10.0)新平均值存入VW14、16、18子程序2開(kāi)始掃描計(jì)數(shù)器加1加POT 1值到以前總和中計(jì)算平均值,掃描計(jì)數(shù)器復(fù)位100次掃描完成了嗎?新平均值在保護(hù)段之外嗎?將新的模擬電位器值送回到VW18設(shè)置新保護(hù)段子程序2結(jié)束否否是是否POT 0變嗎?子程序

4、1開(kāi)始AC1清零POT 0值傳給AC1換算POT 0值加200ms偏移量AC1值傳給VW0子程序1結(jié)束程序和注釋方案1說(shuō)明了用模擬電位器對(duì)定時(shí)器設(shè)定值進(jìn)行細(xì)調(diào)的方法。首先通過(guò)程序中的偏移量(本例中為20ms)對(duì)定時(shí)器進(jìn)行粗調(diào),然后再用電位器能把定時(shí)器的設(shè)定值精確地調(diào)整到滿(mǎn)意的設(shè)置。每個(gè)定時(shí)器周期之后,執(zhí)行子程序1中的指令,把POT 0的值(在SMB28中)讀到AC1,除以2,再加上200ms偏移量。返回主程序時(shí),AC2中的定時(shí)器循環(huán)計(jì)數(shù)值加1,并拷貝到輸出字節(jié)(QB0),以供顯示。在方案2中,對(duì)電位器1(POT 1)的100次掃描值在AC3中累加后并取平均,再存入VW12。如果該值低于低保護(hù)限

5、值VW14,或高于高保護(hù)限值VW16(兩者均在首次掃描時(shí)初始化),則將新值VW12拷貝到VW14、VW16和VW18中。然后再分別對(duì)VW16和VW14的值減、加3ms,作為新限值,而VW18中的平均值被傳回主程序作為定時(shí)器T34的設(shè)定值。返回主程序時(shí),VW20中的定時(shí)器循環(huán)計(jì)數(shù)值加1,并拷貝到輸出字節(jié)(QB1),以供顯示。在方案3中,把電位器0(POT 0)的值直接作為定時(shí)器T35的設(shè)定值,AC2中的定時(shí)器循環(huán)計(jì)數(shù)值加1,并拷貝到輸出字節(jié)(QB0),以供顯示。本程序長(zhǎng)度為110個(gè)字。 / 標(biāo)題:模擬電位器: / * * * * * * * * * * * * * * *主程序 * * * *

6、* * * * * * * * * * * / 這是S7-200的一個(gè)演示程序,介紹了使用模擬電位器調(diào)整定時(shí)器設(shè)定值的三種方案。 / 方案1:對(duì)來(lái)自POT 0的值進(jìn)行換算并加偏移量,以調(diào)整定時(shí)器的設(shè)定值,可以從200mss。每個(gè)定時(shí)器周期QB0加1。 / 方案2:從POT 1來(lái)的值經(jīng)過(guò)濾波給定時(shí)器提供0mss的穩(wěn)定的設(shè)定值。每個(gè)定時(shí)器周期QB1加1。 / 方案3:把POT 0的值直接作為定時(shí)器設(shè)定值。每個(gè)定時(shí)器周期QB0加1。 / 模擬電位器POT 0和POT 1的值可以分別從SMB28和SMB29中以一個(gè)字節(jié)讀出。 / 每次掃描時(shí),POT的值會(huì)變化一點(diǎn),方案1和2都能為定時(shí)器提供穩(wěn)定的設(shè)定值

7、。 / 方案1的設(shè)定值會(huì)改變1次或2次,但每個(gè)定時(shí)器周期只裝載一次。 / 方案2的設(shè)定值非常穩(wěn)定,每次掃描都裝載。 / 方案3的設(shè)定值每次掃描都會(huì)改變。 / 主程序: / 首次掃描時(shí)清除工作緩沖區(qū): MOVD+0,AC0 / AC0=0。 MOVD+0,AC3 / AC3=0。 MOVW+0,VW10 / VW10=0。 MOVW+32000,VW14 / 低限工作區(qū)復(fù)位。 MOVW+0,VW16 / 高限工作區(qū)復(fù)位。 / 方案1: / 每次掃描時(shí)POT的值會(huì)改變一點(diǎn)。 / 下面的指令用來(lái)在每個(gè)定時(shí)器周期捕獲一次換算后的值,并提供一個(gè)穩(wěn)定的定時(shí)器設(shè)定值。 / 如果輸入I0.0為1狀態(tài),則選方案

8、1。 TONT33,VW0 / POT 0的值經(jīng)運(yùn)算后作為T(mén)33的設(shè)定值。 CALL1 / 調(diào)用子程序1對(duì)POT 0的值進(jìn)行換算并加偏移量。 LDT33 / 若T33計(jì)時(shí)到, INCWAC2 / 則AC2加1,即定時(shí)器循環(huán)計(jì)數(shù)。 MOVBAC2,QB0 / 把AC2的最低有效字節(jié)拷貝到輸出字節(jié)QB0,以供顯示。 RT33,1 / 定時(shí)器T33復(fù)位。 / 方案2: LDI0.1 / 如果輸入I0.1為1狀態(tài),則選方案2。 CALL2 / 調(diào)用子程序2,對(duì)POT 1的值進(jìn)行濾波運(yùn)算后存入VW18。 TONT34,VW18 / VW18的值作為T(mén)34的設(shè)定值。 LDT34 / 若T34計(jì)時(shí)到, IN

9、CWVW20 / 則VW20加1,即定時(shí)器循環(huán)計(jì)數(shù)。 MOVBVB21,QB1 / 把VW20最低有效字節(jié)(VB21)拷貝到輸出字節(jié)QB1,以供顯示。 RT34,1 / 定時(shí)器T34復(fù)位 / 方案3: / 如果輸入I0.2為1狀態(tài), / 且方案1不在運(yùn)行(I0.0=0),則選方案3。 MOVW0,AC1 / 清除累加器1(AC1) MOVBSMB28,AC1 / 送POT 0的值到AC1。 TONT35,AC1 / POT 0的值作為T(mén)35的設(shè)定值。 LDT35 / 若T35計(jì)時(shí)到, INCWAC2 / 則AC2加1,即定時(shí)器循環(huán)計(jì)數(shù)。 MOVBAC2,QB0 / 把AC2最低有效字節(jié)拷貝到輸

10、出字節(jié)QB0,以供顯示。 RT35,1 / 定時(shí)器T35復(fù)位。 MEND / 主程序結(jié)束 / 方案1的子程序 SBR1 / 子程序1。 / 換算POT 0的值并加上偏移量后存在VW0中,再返回主程序。 LDT33 / 每個(gè)定時(shí)器周期檢查POT 0的變化。 MOVW0,AC1 / 清除累加器1(AC1)。 MOVBSMB28,AC1 / 送POT 0的值給AC1。 DIV2,AC1 / AC1除2,即把POT 0的輸入范圍從0255換算成0127。 +120,AC1 / 加200ms偏移量。 MOVWAC1,VW0 / 把AC1值拷貝到VW0,以便能讓程序員讀取。 RET / 子程序1結(jié)束。 /

11、 方案2的子程序 SBR2 / 子程序2。 / 對(duì)POT 1值采樣100次,然后求平均值。 INCWVW10 / 掃描計(jì)數(shù)器加1。 MOVBSMB29,AC0 / 送POT 1的值到AC0。 +1AC0,AC3 / 再加到以前的總和中(即累加POT1的值,共累加100次)。 LDWVW10,100 / 100次掃描之后。 DIV100,AC3 / 求平均值。 MOVWAC3,VW12 / 存平均值。 MOVW0,VW10 / 掃描計(jì)數(shù)器復(fù)位。 MOVD0,AC3 / 工作內(nèi)存復(fù)位。 AW=VW12,VW16 / FILLVW12,VW14,3 / 把新的平均值存入VW14,VW16,VW18。

12、 -1+3,VW14 / 設(shè)置新的低保護(hù)限。 +1+3,VW16 / 設(shè)置新的高保護(hù)限。 RET / POT 1的濾波值存在VW18中,返回主程序H.2怎樣使用高速計(jì)數(shù)器概述本例敘述SIMATIC S7-200的高速計(jì)數(shù)器(HSC)的一種組態(tài)功能。對(duì)來(lái)自傳感性(如編碼器)信號(hào)的處理,高速計(jì)數(shù)器可采用多種不同的組態(tài)功能。本例用脈沖輸出(PLS)來(lái)為HSC產(chǎn)生高速計(jì)數(shù)信號(hào),PLS可以產(chǎn)生脈沖串和脈寬調(diào)制信號(hào),例如用來(lái)控制伺服電機(jī)。既然利用脈沖輸出,必須選用CPU 224DC/DC/DC。下面這個(gè)例子,展示了用HSC和脈沖輸出構(gòu)成一個(gè)簡(jiǎn)單的反饋回路,怎樣編制一個(gè)程序來(lái)實(shí)現(xiàn)反饋功能。例圖程序框圖.IN

13、T2:第三次設(shè)定值INT1INT0INT2.100015001000子程序1:起動(dòng)HSC0主程序子程序0:初始化,起動(dòng)PLSINT0:第一次設(shè)定值INT1:第二次設(shè)定值在脈沖序列末程序停止程序和注釋本例描述了S7-200 DC/DC/DC的高速計(jì)數(shù)器(HSC)的功能。HSC計(jì)數(shù)速度比PLC掃描時(shí)間快得多,采用集成在CPU 224中的20K硬件計(jì)數(shù)器進(jìn)行計(jì)數(shù)。總的來(lái)說(shuō),每個(gè)高速計(jì)數(shù)器需要10個(gè)字節(jié)內(nèi)存用來(lái)存控制位、當(dāng)前值、設(shè)定值、狀態(tài)位。本程序長(zhǎng)度為91個(gè)字。 / 主程序: / 在主程序中,首先將輸出Q0.0置,0,因?yàn)檫@是脈沖輸出功能的需要。再初始化高速計(jì) / 數(shù)器HSC0,然后調(diào)用子程序0和

14、1。 / HSC0起動(dòng)后具有下列特性:可更新CV和PV值,正向計(jì)數(shù)。 / 當(dāng)脈沖輸出數(shù)達(dá)到SMD72中規(guī)定的個(gè)數(shù)后,程序就終止。 / 主程序 / 首次掃描標(biāo)志(SM0.1=1)。 RQ0.0,1 / 脈沖輸出Q0.0復(fù)位(Q0.0=0)。 MOVB16#F8,SMB37 / 裝載HSC0的控制位: / 激活HSC0,可更新CV,可更新PV, / 可改變方向,正向計(jì)數(shù)。 / HSC指令用這些控制位來(lái)組態(tài)HSC。 MOVD0,SMD38 / HSC0當(dāng)前值(CV)為0。 MOVD1000,SMD42 / HSC0的第一次設(shè)定值(PV)為1000。 HDEF0,0 / HSC0定為模式0。 CALL

15、0 / 調(diào)用子程序0。 CALL1 / 調(diào)用子程序1。 MEND/ 主程序結(jié)束。 / * * * * * * * * * * * * * * * * * * * * / 子程序0: / 子程序0初始化,并激活脈沖輸出(PLS)。 / 在特殊存儲(chǔ)字節(jié)SMB67中定義脈沖輸出特性:脈沖串(PT0),時(shí)基,可更新數(shù)值,激活PLS。 / SMW68定義脈沖周期,其值為時(shí)基的倍數(shù)。 / 最后,在SMD72中指定需要產(chǎn)生的脈沖數(shù)。(SMD72)為內(nèi)存雙字,即4個(gè)字節(jié))。 / 子程序0 SBR0 / 子程序0 MOVB16#8D,SMB67 / 裝載脈沖輸出(PLS0)的控制位:PT0,時(shí)基1ms,可更新,

16、激活。 MOVW1,SMW68 / 脈沖周期1ms。 MOVD30000,SMD72 / 產(chǎn)生30000個(gè)脈沖。 PLS0 / 起動(dòng)脈沖輸出(PLS 0),從輸出端Q0.0輸出脈沖。 RET / 子程序0結(jié)束。 / * * * * * * * * * * * * * * * * * * * * / 子程序1: / 子程序1起動(dòng)HSC0,并把中斷程序0分配給中斷事件12(HSC 0的當(dāng)前值CV等于設(shè)定值PV)。 / 只要脈沖計(jì)數(shù)值(當(dāng)前值CV)達(dá)到設(shè)定值(PV),該事件就會(huì)發(fā)生。 / 最后,允許中斷。 / 子程序1 SBR0 / 子程序1。 ATCH0,12 / 把中斷程序0分配給中斷事件12(

17、HSC 0的CV=PV)。 ENI / 允許中斷。 HSC0 / 按主程序中對(duì)HSC 0的初始組態(tài)特性,起動(dòng)HSC0。 RET / 子程序1結(jié)束。 / * * * * * * * * * * * * * * * * * * * * / 中斷程序0: / 當(dāng)HSC 0的計(jì)數(shù)脈沖達(dá)到第一,設(shè)定值1000時(shí),調(diào)用中斷程序0。 / 輸出端Q0.1置位(Q0.1=1)。 / 為HSC 0設(shè)置新的設(shè)定值1500(第二設(shè)定值) / 用中斷程序1取代中斷程序0,分配給中斷事件12(HSC 0的CV=PV)。 / 中斷程序0 INT0 / 中斷程序0。 SQ0. 1,1 / 輸出端Q0.1置位(Q0.1=1)。

18、 MOVB16#A0,SMB37 / 重置HSC 0的控制位,僅更新設(shè)定值(PV)。 MOVD1500,SMD42 / HSC 0的下一個(gè)設(shè)定值為1500(第二設(shè)定值)。 ATCH1,12 / 用中斷程序1取代中斷程序0,分配給中斷事件12。 HSC0 / 起動(dòng)HSC 0,為其裝載新的設(shè)定值。 RETI / 中斷程序0結(jié)束。 / * * * * * * * * * * * * * * * * * * * * / 中斷程序1: / 當(dāng)HSC 0的計(jì)數(shù)脈沖達(dá)到第二設(shè)定值1500時(shí),調(diào)用中斷程序1。 / 輸出端Q0.2置位(Q0.2=1)。 / HSC 0改成減計(jì)數(shù),并置新的設(shè)定值1000(第三設(shè)定

19、值)。 / 用中斷程序2取代中斷程序1,分配給中斷事件12(HSC 0的CV=PV)。 / 中斷程序1: INT1 / 中斷程序1。 SQ0. 2,1 / 輸出端Q0.2置位(Q0.2=1)。 MOVB16#B0,SMB37 / 重置HSC 0的控制位,更新設(shè)定值,并改成減計(jì)數(shù)(反向計(jì)數(shù))。 MOVD1000,SMD42 / HSC 0的下一個(gè)設(shè)定值為1000(第三設(shè)定值)。 ATCH2,12 / 用中斷程序2取代中斷程序1,分配給中斷事件12。 HSC0 / 起動(dòng)HSC 0,為其裝載新的設(shè)定值和方向。 RETI / 中斷程序1結(jié)束。 / * * * * * * * * * * * * * *

20、 * * * * * * / 中斷程序2: / 當(dāng)HSC 0的計(jì)數(shù)脈沖達(dá)到第三設(shè)定值1000時(shí),調(diào)用中斷程序2。 / 輸出端Q0.1和Q0.2復(fù)位(Q0.1=0,Q0.2=0)。 / HSC 0的計(jì)數(shù)方向重新改為正向(增計(jì)數(shù)),并將當(dāng)前計(jì)數(shù)值置為0,而設(shè)定值PV保持不變(1000)。 / 重新把中斷程序0分配給中斷事件12,程序再次起動(dòng)HSC 0運(yùn)行。 / 當(dāng)脈沖數(shù)達(dá)到SMD72中規(guī)定的個(gè)數(shù)后,程序就終止。 / 中斷程序2: INT2 / 中斷程序2。 RQ0. 1,2 / 輸出端Q0.1和Q0.2復(fù)位(Q0.1=0,Q0.2=0)。 MOVB16#D8,SMB37 / 重置HSC 0的控制位

21、,更新CV,改為正向計(jì)數(shù)(增計(jì)數(shù))。 MOVD0,SMD38 / HSC 0的當(dāng)前值復(fù)位(CV=0)。 ATCH0,12 / 把中斷程序0分配給中斷事件12。 HSC0 / 重新起動(dòng)HSC 0。 RETI / 中斷程序2結(jié)束。H.3自由通信口模式的簡(jiǎn)單應(yīng)用概述自由通信口模式(Freeport Mode)的通信協(xié)議可自由定義,通信所需要的信息存放在特殊存儲(chǔ)字節(jié)SMB30中,用戶(hù)須作如下說(shuō)明:l 奇偶校驗(yàn)l 每個(gè)字符的位數(shù)l 波特率自由通信口模式可以接收和發(fā)送數(shù)據(jù)。本例用一個(gè)仿真的打印機(jī)程序來(lái)描述數(shù)據(jù)發(fā)送,再用一個(gè)條形碼閱讀器程序來(lái)說(shuō)明數(shù)據(jù)接收。條形碼解碼器條形碼閱讀器適配器通信口接收發(fā)送轉(zhuǎn)換器打

22、印機(jī)接口CPU 222例圖打印機(jī)程序框圖設(shè)置自由通信口模式定義發(fā)送的存儲(chǔ)器區(qū)發(fā) 送起動(dòng)主程序結(jié)束主程序打印機(jī)程序和注解此程序描述向打印機(jī)發(fā)送數(shù)據(jù)。為了簡(jiǎn)化此例,窗口下的終端程序可代替打印機(jī)作為接收器邊接。打印機(jī)或終端的組態(tài)特性為9600波特,無(wú)奇偶校驗(yàn),每字符8位。本程序長(zhǎng)度為13個(gè)字。 / 正確設(shè)置自由通信口模式對(duì)此應(yīng)用很重要。 / 所需信息裝載在特殊存儲(chǔ)字節(jié)SMB30中。 / 這些輸入數(shù)據(jù)可從操作手冊(cè)中查詢(xún)。 / 發(fā)送命令XMT包含了發(fā)送信息緩沖區(qū)的起始地址,該地址單元中只包含了發(fā)送信息的長(zhǎng)度(以字節(jié)為單位)。 / 第一次掃描(SM0.1=1)。 MOVB+9,SMB30 / 自由通信口模

23、式;9600波特,無(wú)奇偶校驗(yàn),每字符8位。 MOVB+1,VB100 / 信息長(zhǎng)度為1個(gè)ASCII字符。 MOVB16#41,VB101 / A字符長(zhǎng)度為1個(gè)字節(jié),A=41H(十六進(jìn)制)。 / 輸入I0.1起動(dòng)發(fā)送。 EU / 識(shí)別脈沖上升沿。 XMTVB100,0 / 發(fā)送。 MEND / 主程序結(jié)束。否是條形碼閱讀器程序框圖條形碼閱讀器程序和注解該程序描述數(shù)據(jù)接收,條形碼閱讀器通過(guò)接口把讀到的數(shù)據(jù)用自由通信口模式發(fā)給SIMATIC S7-200。為簡(jiǎn)化此例,窗口下的終端程序可代替條形碼閱讀器作為發(fā)送器連接。本程序長(zhǎng)度為15個(gè)字。 / * * * * * * * * * * * * 主 程

24、序* * * * * * * * / 正確設(shè)置自由通信口模式對(duì)此應(yīng)用很重要。 / 所需信息裝載在特殊存儲(chǔ)字節(jié)SMB30中。 / 這些輸入數(shù)據(jù)可從操作手冊(cè)中查詢(xún)。 / 接收數(shù)據(jù)借助于中斷實(shí)現(xiàn),當(dāng)數(shù)據(jù)進(jìn)入自由編程接口,接收中斷事件(8)。 / 就被觸發(fā)了。 / 在此應(yīng)用中,將中斷程序0(INT0)賦予接收中斷事件(8)。 / 第一次掃描標(biāo)志(SM0.1=1)。 MOVB+9,SMB30 / 自由通信口模式:9600波特,無(wú)奇偶校驗(yàn),每字符8位。 ATCH+0,8 / 指定接收中斷事件8調(diào)用中斷程序0。 ENI / 允許中斷。 MEND / 結(jié)束主程序。 / * * * * * * * *中斷程序0

25、 * * * * * * * * / 在中斷程序0,把存放在特殊存儲(chǔ)字節(jié)SMB2中的接收字符和大寫(xiě)字母A作比較。 / 如果符合,則置輸出位Q0.1為1。 INT / 接收中斷程序0。 LDB=SMB2,16#41 / 字節(jié)SMB2中的接收字符和A比較。 SQ0.1,1 / 若字符為A,則置Q0.1為1。 RETI / 返回主程序。H.4處理脈寬調(diào)制概述在S7-200系列中輸出端Q0.0和Q0.1能夠輸出方波信號(hào),而且方波信號(hào)的周期和脈寬均能獨(dú)立調(diào)節(jié),其中脈寬指的是在一個(gè)周期內(nèi),輸出信號(hào)處于高電平的時(shí)間長(zhǎng)度。下面這個(gè)例子說(shuō)明了脈寬調(diào)制(PWM)是如何工作的。輸出端Q0.0輸出方波信號(hào),其脈寬每周

26、期遞增0.5秒,周期固定為5秒,并且脈寬的初始值為0.5秒。當(dāng)脈寬達(dá)到設(shè)定的最大值4.5秒時(shí),脈寬改為每周期遞減0.5秒,直到脈寬為零為止。以上過(guò)程周而復(fù)始。在這個(gè)例子中必須把輸出端Q0.0與輸入端I0.0連接,這樣程序才能控制PWM。例圖脈沖輸出脈寬調(diào)制信號(hào)高速計(jì)數(shù)器輸入同期脈寬224224主程序開(kāi)始SBR0開(kāi)始主程序結(jié)束SBR0結(jié)束INT1開(kāi)始INT2開(kāi)始INT1結(jié)束INT2結(jié)束在第一次掃描:調(diào)開(kāi)子程序0初始化PWM設(shè)定PWM的控制字,周期5秒,脈初始化PWM脈寬增嗎?否 是中斷2被賦予“”事件初始化PWM中斷1被賦予“”事件初始化PWM斷開(kāi)事件與中斷斷開(kāi)事件與中斷程序框圖程序和注解特殊存

27、儲(chǔ)字節(jié)SMB67用來(lái)初始化輸出端Q0.0的PWM。這個(gè)控制字內(nèi)含PWM允許位,修改周期和脈寬的允許位,以及時(shí)間基數(shù)選擇位等,由子程序0來(lái)調(diào)整這個(gè)控制字節(jié)。通過(guò)ENI指令,使所有的中斷成為全局允許,然后通過(guò)PLS0指令,使系統(tǒng)接受各設(shè)定值,并初始化“PTO/PWM發(fā)生器”,從而在輸出端Q0.0輸出脈寬調(diào)制(PWM)信號(hào)。另外,周期5秒是通過(guò)將數(shù)值5000置入特殊存儲(chǔ)字SMW68來(lái)實(shí)現(xiàn)的,初始脈寬0.5秒則通過(guò)將500寫(xiě)入特殊存儲(chǔ)字SMW70來(lái)實(shí)現(xiàn)的。這個(gè)初始化過(guò)程是在程序的第一個(gè)掃描周期通過(guò)執(zhí)行子程序0來(lái)實(shí)現(xiàn),第一個(gè)掃描周期標(biāo)志是SM0.1=1。當(dāng)一個(gè)PWM循環(huán)結(jié)束,即當(dāng)前脈寬為0秒時(shí),將再一次

28、初始化PWM。輔助內(nèi)存標(biāo)記M0.0用來(lái)表明脈寬是增加,還是減少,初始化時(shí)將這個(gè)標(biāo)記設(shè)為增加。輸出端Q0.0與輸入端I0.0相連,這樣輸出信號(hào)也可送到輸入端I0.0。當(dāng)?shù)谝粋€(gè)方波脈沖輸出時(shí),利用ATCH指令,把中斷程序1(INT1)賦給中斷事件0(I0.0的上升沿)。每個(gè)周期中斷程序1將當(dāng)前脈寬增加0.5秒,然后利用DTCH指令分離中斷INT1,使這個(gè)中斷再次被屏蔽。如果在下次增加時(shí),脈寬大于或等于周期,則將輔助內(nèi)存標(biāo)記位M0.0再次置0。這樣就把中斷程序2賦予事件0,并且脈寬也將每次遞減0.5秒。當(dāng)脈寬值減為零時(shí),將再次執(zhí)行,初始化程序(子程序0)。本程序長(zhǎng)度為63個(gè)字。 / * * * *

29、* * * * * * * * 主 程 序 * * * * * * * * / 在第一個(gè)掃描周期SM0.1=1。 CALL0 / 調(diào)用子程序0來(lái)起動(dòng)PWM,即初始化PWM。 LDW=SMW70,VW0 / 如果脈寬大于等于(周期一脈寬), RM0.0,1 / 則將輔助內(nèi)存標(biāo)記位M0.0置0。 LDW=SMW70,0 / 如果脈寬為零, CALL0 / 則調(diào)用子程序0來(lái)重新開(kāi)始一個(gè)完整的PWM。 / 如果輸入I0.0=1。 / 且輔助內(nèi)存標(biāo)記位M0.0=1(脈寬增加), ATCH1,0 / 則把INT1賦給事件0(輸入I0.0的正向上升沿)。 / 如果輸入I0.0=1。 / 且輔助內(nèi)存標(biāo)記位M0

30、.0=0(脈寬減少), ATCH2,0 / 則把INT2賦給事件0(輸入I0.0的正向上升沿)。 MEND / 主程序結(jié)束。 / * * * * * * * *主 程 序 0 * * * * * * * * SBR0 / 初始化脈寬調(diào)制 SM0.0,1 / 將增加脈寬的輔助內(nèi)存標(biāo)記位M0.0置1。 MOVB16#CB,SMB67 / 設(shè)定輸出 / SM67.0:=1允許接受新的周期。 / SM67.1:=1允許接受新的脈寬。 / SM67.3:=1時(shí)間基數(shù)為1ms(若為0,則時(shí)間基數(shù)為1ms)。 / SM67.6:=1選擇PWM模式(若為0,則PT0模式)。 / SM67.7:=1允許高速輸出

31、功能。 MOVW500,SMW70 / 指定初始脈寬(500ms)。 MOVW5000,SMW68 / 周期為5s。 ENI / 允許全部中斷。 PLS0 / 對(duì)PTO/PWM生成器編程的指令。 MOVWSMW68,VW0 / 將周期置入數(shù)據(jù)字VW0。 -1500,VW0 / 將(周期脈寬)的值置入數(shù)據(jù)字VW0。 RET / 子程序0結(jié)束并返回主程序。 / * * * * * * * *中斷服務(wù)程序 1 * * * * * * * * INT1 / 增加脈寬。 +1500,SMW70 / 脈寬增加500ms。 PLS0 / 對(duì)PTO/PWM生成器編程的指令。 DTCH0 / 將中斷與事件0斷開(kāi)

32、。 RETI / 中斷服務(wù)程序1結(jié)束,并返回主程序。 / * * * * * * * *中斷服務(wù)程序 2 * * * * * * * * INT2 / 減少脈寬。 -1500,SMW70 / 脈寬減少500ms。 PLS0 / 對(duì)PTO/PWM生成器編程的指令。 DTCH0 / 將中斷與事件0斷開(kāi)。 RETI / 中斷服務(wù)程序2結(jié)束,并返回主程序。H.5可逆電動(dòng)機(jī)起動(dòng)器電路適用于改變?nèi)嘟涣鞲袘?yīng)電動(dòng)機(jī)旋轉(zhuǎn)方向概述這個(gè)示例程序用于控制可雙向運(yùn)轉(zhuǎn)的三相感應(yīng)電動(dòng)機(jī)。當(dāng)與輸入點(diǎn)I0.0相連的左轉(zhuǎn)點(diǎn)動(dòng)開(kāi)關(guān)(Le)閉合時(shí),電動(dòng)機(jī)逆時(shí)針?lè)较蛐D(zhuǎn),當(dāng)與輸入點(diǎn)I0.1相連的右轉(zhuǎn)點(diǎn)動(dòng)開(kāi)關(guān)(Ri)閉合時(shí),電動(dòng)機(jī)順時(shí)

33、針?lè)较蛐D(zhuǎn)。但這要有一個(gè)前題,即與輸入點(diǎn)I0.3相連的電動(dòng)機(jī)電路斷路器和與輸入點(diǎn)I0.2相連的停機(jī)開(kāi)關(guān)(OFF)都沒(méi)有動(dòng)作。只有按下停機(jī)開(kāi)關(guān),并等待5秒鐘之后,才可以改變電動(dòng)機(jī)的旋轉(zhuǎn)方向。這樣做是為了讓電動(dòng)機(jī)有足夠的時(shí)間剎車(chē)停轉(zhuǎn),然后再反向起動(dòng),如果需要電動(dòng)機(jī)反轉(zhuǎn)的話(huà)。如果與I0.0和I0.1相連的點(diǎn)動(dòng)開(kāi)關(guān)同時(shí)按下,電動(dòng)機(jī)停轉(zhuǎn),并且不起動(dòng)。例圖電動(dòng)機(jī)電壓電動(dòng)機(jī)電路斷路器三相交流感應(yīng)電動(dòng)機(jī)電動(dòng)機(jī)起動(dòng)器順時(shí)針?lè)较蛐D(zhuǎn)左右停電動(dòng)機(jī)起動(dòng)器逆時(shí)針?lè)较蛐D(zhuǎn)CPU 221停機(jī)逆時(shí)針?lè)较蛐D(zhuǎn)順時(shí)針?lè)较蛐D(zhuǎn)程序框圖程序和注釋在程序起始部分,程序檢查是否必須激活互鎖電路?;ユi電路防止電動(dòng)機(jī)誤起動(dòng),或者按錯(cuò)誤方向起

34、動(dòng)。只有當(dāng)所有點(diǎn)動(dòng)開(kāi)關(guān)都沒(méi)有動(dòng)作(位于起始狀態(tài)),或者等待時(shí)間溢出時(shí),互鎖才清除,即M2.0被置成邏輯0。如果電動(dòng)機(jī)斷路器(輸入點(diǎn)I0.3)沒(méi)有動(dòng)作,停機(jī)點(diǎn)動(dòng)開(kāi)關(guān)(輸入點(diǎn)I0.2)也沒(méi)有動(dòng)作(這兩個(gè)觸點(diǎn)都是常閉觸點(diǎn)):并且狀態(tài)位M1.1沒(méi)有被設(shè)置成順時(shí)針旋轉(zhuǎn)標(biāo)志,則使能位M2.1被置為邏輯1。電動(dòng)機(jī)才有可能逆時(shí)針旋轉(zhuǎn)。代表逆時(shí)針旋轉(zhuǎn)的狀態(tài)位是M1.0。用類(lèi)似方法可得到順時(shí)針?lè)较蛐D(zhuǎn)的起動(dòng)條件。當(dāng)點(diǎn)動(dòng)起動(dòng)開(kāi)關(guān)(Ie和Ri)這一動(dòng)作,并且互鎖位和狀態(tài)位都沒(méi)有被設(shè)置成相反的旋轉(zhuǎn)方向時(shí),電動(dòng)機(jī)起動(dòng)。即相關(guān)的輸出位和狀態(tài)位被置位,狀態(tài)位的作用是使輸出能夠自保。電動(dòng)機(jī)逆時(shí)針?lè)较蛐D(zhuǎn)起動(dòng)器由輸出點(diǎn)Q0.0控

35、制。電動(dòng)機(jī)順時(shí)針?lè)较蛐D(zhuǎn)起動(dòng)器由輸出點(diǎn)Q0.1控制。除此外,另有一組信號(hào)燈指示電動(dòng)機(jī)當(dāng)前的運(yùn)行狀態(tài);逆時(shí)針?lè)较蛐D(zhuǎn)指示燈(Le)與輸出點(diǎn)Q0.4相連;順時(shí)針?lè)较蛐D(zhuǎn)指示燈(Ri)與輸出點(diǎn)Q0.3相連;關(guān)電機(jī)指示燈(OFF)與輸出點(diǎn)Q0.2相連。當(dāng)電動(dòng)機(jī)被停機(jī)時(shí),“ED”的下降沿將輔助存儲(chǔ)位M2.3置為1,進(jìn)入停機(jī)模式。當(dāng)M2.3被置位時(shí),限制電動(dòng)機(jī)再次起動(dòng)的定時(shí)器開(kāi)始計(jì)時(shí),該定時(shí)器的預(yù)置時(shí)間是5秒(50010ms),經(jīng)過(guò)5秒鐘后,內(nèi)部存儲(chǔ)器位M2.3被復(fù)位。在這段強(qiáng)制等待時(shí)間內(nèi)與輸出點(diǎn)Q0.5相連的信號(hào)燈(Wait)閃爍。如果狀態(tài)位都沒(méi)有被置位,則點(diǎn)亮與輸出點(diǎn)Q0.2相連的停機(jī)狀態(tài)指示燈(OF

36、F)。該程序的長(zhǎng)度為61個(gè)字。 / 互鎖: / 如果既命令電動(dòng)機(jī)右轉(zhuǎn)(Ri)。 / 又命令電動(dòng)機(jī)左轉(zhuǎn)(Le)。 / 或處于強(qiáng)制等待狀態(tài),則 SM2.0,1 / 設(shè)置互鎖(M2.0=1)。 / 解除互鎖: / 如果既無(wú)左轉(zhuǎn)命令(Le), / 也無(wú)右轉(zhuǎn)命令(Ri)。 / 并且等待時(shí)間溢出,則 RM2.0,1 / 解除互鎖(M2.0=0)。 / 逆時(shí)針?lè)较蛐D(zhuǎn)使能 / 如果無(wú)停機(jī)命令(OFF), / 且電路斷路器未動(dòng)作 / 且順時(shí)針?lè)较蛐D(zhuǎn)狀態(tài)位未置位, / 則逆時(shí)針?lè)较蛐D(zhuǎn)使能位M2.1=1。 / 順時(shí)針?lè)较蛐D(zhuǎn)使能 / 如果無(wú)停機(jī)命令(OFF), / 且電路斷路器未動(dòng)作 / 且逆時(shí)針?lè)较蛐D(zhuǎn)狀態(tài)

37、位未置位, / 則順時(shí)針?lè)较蛐D(zhuǎn)使能位M2.2=1。 / 逆時(shí)針?lè)较蛐D(zhuǎn) / 如果命令電動(dòng)機(jī)左轉(zhuǎn)(Le)。 / 或逆時(shí)針?lè)较驙顟B(tài)位, / 且無(wú)互鎖, / 且逆時(shí)針?lè)较蛐D(zhuǎn)使能,則, / 置逆時(shí)針?lè)较蛐D(zhuǎn)狀態(tài)位M1.0=1。 / 置電動(dòng)機(jī)起動(dòng)器輸出點(diǎn)Q0.0=1。 / 點(diǎn)亮逆時(shí)針?lè)较蛐D(zhuǎn)信號(hào)燈(Le)。 / 順時(shí)針?lè)较蛐D(zhuǎn) / 如果命令電動(dòng)機(jī)右轉(zhuǎn)(Ri), / 或順時(shí)針?lè)较驙顟B(tài)位, / 且無(wú)互鎖, / 且順時(shí)針?lè)较蛐D(zhuǎn)使能,則, / 置順時(shí)針?lè)较蛐D(zhuǎn)狀態(tài)位M=1。 =Q0.1 / 置電動(dòng)機(jī)起動(dòng)器輸出點(diǎn)Q0.1=1。 / 點(diǎn)亮順時(shí)針?lè)较蛐D(zhuǎn)信號(hào)燈(Ri)。 / 檢測(cè)邊沿,關(guān)機(jī)過(guò)程 / 如果既無(wú)逆時(shí)

38、針?lè)较蛐D(zhuǎn)狀態(tài)位, / 也無(wú)順時(shí)針?lè)较蛐D(zhuǎn)狀態(tài)位,則, / 點(diǎn)亮關(guān)機(jī)輸出信號(hào)指示燈(OFF)。 / 若關(guān)機(jī)時(shí), ED / 檢測(cè)下降沿,則, SM2.3,1 / 將輔助存儲(chǔ)器標(biāo)志位(代表關(guān)機(jī)狀態(tài))置位(M2.3=1)。 / 若為關(guān)機(jī)狀態(tài),則 MOVW500,VW20 / 裝載重新起動(dòng)前必須等待的時(shí)間值(50010ms=5s)。 TONT33,VW20 / 起動(dòng)重新起動(dòng)要強(qiáng)制等待的定時(shí)器(T33)。 AT33 / RM2.3,1 / 超過(guò)等待時(shí)間后,將輔助存儲(chǔ)器標(biāo)志位復(fù)位(M2.3=0)。 MOVW0,T33 / 等待定時(shí)器清0。 / 關(guān)機(jī)狀態(tài)指示,等待 / 輔助存儲(chǔ)器標(biāo)志位(等待)。 /指示燈以

39、1秒閃爍。 / 點(diǎn)亮等待信號(hào)燈(Wait)。 MEND / 主程序結(jié)束。H.6步執(zhí)行順序(事件鼓定時(shí)器)概述本程序?qū)崿F(xiàn)了一個(gè)按事件步順序執(zhí)行的例子。每步均包含一系列的動(dòng)作,一步緊跟一步,并且只有所有前提條件均滿(mǎn)足時(shí),才能執(zhí)行。如下所示前提條件 實(shí)際輸出 第5步間隔5秒(T39定時(shí)器)Q0.3復(fù)位步執(zhí)行順序(I0.0已被置為1)無(wú)輸出輸入CPU 221例圖(步順序)(復(fù)位)(第一步)(第二步)(第三步)(第四步)(第五步)S:置位(邏輯1)R:復(fù)位(邏輯0)程序框圖程序和注釋本示例程序由五個(gè)能連續(xù)地執(zhí)行的步組成。每步實(shí)質(zhì)上就是對(duì)某些輸出置位和復(fù)位。在某一步可執(zhí)行以前,必須滿(mǎn)足一些必要的前提條件。

40、例如,已按下某一開(kāi)關(guān),或滿(mǎn)足了要求的等待時(shí)間。另外,還可以隨時(shí)按開(kāi)關(guān)I0.0來(lái)復(fù)位步執(zhí)行順序。這些前提條件與輸出結(jié)果已在程序框圖中描述過(guò)了。本程序長(zhǎng)度為116個(gè)字。 / * * * * * * * * * *第 1 步 * * * * * * * * * * / 起動(dòng)條件,若輸入I0.1=1, / 且未復(fù)位(I0.0=0) / 且無(wú)步執(zhí)行 / / / / SM0.0,1 / 則將第1步標(biāo)志位M置1。 / 若為第1步,則 SQ0.2,2 / 設(shè)置輸出(Q0.2=1,Q0.3=1) TONT37,50 / 設(shè)與第2步之間的時(shí)間間隔為5s(100ms50) / * * * * * * * * * *

41、第 2 步 * * * * * * * * * * LDT37 / 若第1個(gè)定時(shí)器的時(shí)間間隔(5s)結(jié)束(T37=1) / 且第1步已執(zhí)行完(M0.0=1),則 RM0.0,1 / 將第1步標(biāo)志位M置0, SM0.1,1 / 將第2步標(biāo)志位M置1。 / 若為第2步,則 SQ0.1,1 / 設(shè)置輸出,即Q0.1=1。 SQ0.4,1 / 設(shè)置輸出,即Q0.4=1。 RQ0.2,2 / 將輸出Q置0。 TONT38,50 / 設(shè)與第3步之間的時(shí)間間隔為5秒(100ms50) / * * * * * * * * * *第 3 步 * * * * * * * * * * LDT38 / 若第2個(gè)定時(shí)器

42、時(shí)間間隔(5s)結(jié)束(T38=1) / 且第2步已執(zhí)行完(M0.1=1),則 RM0.1,1 / 將第2步標(biāo)志位M置0, SM0.2,1 / 將第3步標(biāo)志位M置1。 / 若為第3步,則 SQ0.0,1 / 設(shè)置輸出,即Q0.0=1 SQ0.5,1 / 設(shè)置輸出,即Q0.5=1 RQ0.1,1 / 將輸出Q和置0。 RQ0.4,1 / / * * * * * * * * * *第 4 步 * * * * * * * * * * / 起動(dòng)條件,若輸入I0.2=1, / 且第3步已執(zhí)行完(M0.2=1,)則 RM0.2,1 / 將第3步標(biāo)志位M0.2置0, SM0.3,1 / 將第4步標(biāo)志位M0.3

43、置1, / 若為第4步,則 SQ0.1,1 / 設(shè)置輸出,即Q0.1=1 SQ0.3,1 / 設(shè)置輸出,即Q0.3=1 RQ0.0,1 / 將輸出Q0.0置0。 TONT39,50 / 設(shè)與第5步之間的時(shí)間間隔為5s(100ms50) / * * * * * * * * * *第 5 步 * * * * * * * * * * LDT37 / 起動(dòng)條件,若輸入I0.3=1, AT39 / 且第三個(gè)定時(shí)器時(shí)間間隔(5s)結(jié)束(T39=1) / 且第4步已執(zhí)行完,則 RM0.3,1 / 將第4步標(biāo)志位M置0。SM0.4,1 / 將第5步標(biāo)志位M0.3置1。 / 若為第5步,則RQ0.1,1 / 將

44、輸出Q0.1和Q0.5置0。 RQ0.5,1 / / * * * * * * * * * *復(fù)位步執(zhí)行順序 * * * * * * * * * * / 起動(dòng)條件,若輸入I0.0=1,則 RM0.0,5 RQ0.0,6 MEND / 結(jié)束“定時(shí)器指令”,為您提供了更多的關(guān)于定時(shí)器的信息。H.7S7-200用自由通信口模式和并行打印機(jī)連接概述本例描述了S7-200 CPU和外部設(shè)備(例如打印機(jī))的連接方法。該例中SIMATIC PLC自由通信口模式(Freeport Mode)向打印機(jī)發(fā)送信息。程序包含以下功能:輸入I0.0為1時(shí),打印文字“SIMATIC S7-200”:輸入I0.1到I0.7為

45、1時(shí),打印句子“INPUT 0.IS SET!”(其中分別為1,2,7)。假定打印機(jī)用并行接口連接,并假定發(fā)送波特率為9600波特。通信口轉(zhuǎn)換器打印機(jī)接口PC/PPI電纜CPU 221例圖開(kāi)始主程序開(kāi)始子程序0結(jié)束子程序0否是發(fā)送信息第1次掃描:調(diào)子程序0初始化打印機(jī)連接設(shè)置自由通信口模式參數(shù)設(shè)置固定文本于信息緩沖區(qū)結(jié)束主程序否發(fā)送信息程序框圖程序和注解此打印程序向并行打印機(jī)發(fā)送信息。主程序檢查S7-200模式開(kāi)關(guān),如果模式開(kāi)關(guān)為RUN模式,則切換到自由通信口模式。根據(jù)輸入把相應(yīng)的信息傳送到打印機(jī),主程序定義了這些內(nèi)存變量。以下的任務(wù)由子程序0完成:子程序0包括設(shè)置自由通信口模式的參數(shù)和相應(yīng)于

46、不同輸入的打印輸出文本。若輸入I0.0=1,則打印“SIMATIC S7-200!”。若輸入I0.1=1,則打印“INPUT 0.1 IS SET!”。若輸入I0.2=1,則打印“INPUT 0.2 IS SET!”。 |若輸入I0.7=1,則打印“INPUT 0.7 IS SET!”。程序結(jié)構(gòu)如下:MAIN(主程序)初始化和輸入請(qǐng)求SBRO(子程序)打印設(shè)置本程序長(zhǎng)度為118個(gè)字。 / * * * * * * * * * *主 程 序 * * * * * * * * * * / 第一次掃描標(biāo)志:(SM0.1=1)。 CALL0 / 調(diào)用子程序0 / 若在TERM模式,則設(shè)置PPI(點(diǎn)到點(diǎn)接口

47、)協(xié)議。 / 若在RUN模式,則設(shè)置Freeport(自由通信口)協(xié)議 EU / 識(shí)別脈沖上升沿 XMTVB80,0 / 發(fā)送ASCII碼,并打印(VB80中存放所發(fā)送的ASCII碼個(gè)數(shù))。 EU / 識(shí)別脈沖上升沿 MOVB16#31,VB109 / 把1的ASCII碼31存入VB109 XMTVB100,0 / 發(fā)送ASCII碼,并打印(VB100中存放所發(fā)送的ASCII碼個(gè)數(shù)) EU / 識(shí)別脈沖上升沿 MOVB16#32,VB109 / 把2的ASCII碼#32存入VB109 XMTVB100,0 / 發(fā)送 EU / MOVB16#33,VB109 / 把3的ASCII碼33存入VB1

48、09。 XMTVB100,0 / EU MOVB16#34,VB109 / 把4的ASCII碼34存入VB109。 XMTVB100,0 / / 起動(dòng)打印輸入I0.5。 EU MOVB16#35,VB109 / 把5的ASCII碼35存入VB109。 XMTVB100,0 / / 起動(dòng)打印輸入I0.6。 EU MOVB16#36,VB109 / 把6的ASCII碼36存入VB109。 XMTVB100,0 / / 起動(dòng)打印輸入I0.7。 EU MOVB16#37,VB109 / 把7的ASCII碼37存入VB109。 XMTVB100,0 / MEND / 主程序結(jié)束。 / * * * * *

49、 * * * * *子 程 序 0 * * * * * * * * * * / 子程序0 SBR0 / 設(shè)置打印信息。 MOVB+9,SMB30 / 9600波特,無(wú)奇偶校驗(yàn),每字符8位 MOVB+16,VB80 / 信息長(zhǎng)度為16個(gè)ASCII碼字符:SIMATIC S7-200 MOVW16#5349,VW81 / 字符SI MOVW16#4D41,VW83 / 字符MA MOVW16#5449,VW85 / 字符TI MOVW16#4320,VW87 / 字符C MOVW16#5337,VW89 / 字符S7 MOVW16#2D32,VW91 / 字符-2 MOVW16#3030,VW93

50、 / 字符00 MOVW16#0D0A,VW95 / MOVB+20,VB100 / 信息長(zhǎng)度為20個(gè)ASCII碼字符:INPUT 0.IS SET! MOVW16#494E,VW101 / 字符IN MOVW16#5055,VW103 / 字符PU MOVW16#5420,VW105 / 字符T 。 MOVW16#302E,VW107 / 字符0。 MOVB16#20,VB110 / 由主程序裝載VB109(十六進(jìn)制31,3237)。 MOVW16#4953,VW111 / 字符IS。 MOVW16#2053,VW113 / 字符 S。 MOVW16#4554,VW115 / MOVW16#

51、2021,VW117 / 字符ET。 MOVW16#0D0A,VW119 / 字符 !。 RET / 子程序0結(jié)束。H.8通過(guò)自由通信口模式接受條形碼閱讀器的信息概述本例說(shuō)明如何將SIMATIC S7-222或S7-224與條形碼閱讀器配合作用。讀入條形碼的信息并經(jīng)解碼器翻譯后,再通過(guò)自由通信口模式(Freeport Mode)把信息傳入SIMATIC。在S7-222或S7-224的內(nèi)存中有兩個(gè)緩沖區(qū),用來(lái)存儲(chǔ)條形碼信息,這兩個(gè)緩沖區(qū)輪流地存儲(chǔ)每次新讀入的條形碼。通常這些數(shù)據(jù)可供程序調(diào)用。但本例中僅僅將信息存入接收緩沖區(qū),可以用S7-200程序包來(lái)查看。條形碼解碼器條形碼閱讀器通信口適配器CPU 222例圖開(kāi)始結(jié)束SBR 0開(kāi)始SBR 0結(jié)束結(jié)束 INI 0結(jié)束 INI 1否否是是開(kāi)始

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論