局部變量表的下面是程序區(qū)(見(jiàn)上圖),,輸入?yún)?shù)“轉(zhuǎn)換值”是來(lái)自模擬量輸入模塊的與模擬量成正比的轉(zhuǎn)換值,,輸出參數(shù)“模擬值”是計(jì)算出的對(duì)應(yīng)的模擬量(例如壓力、溫度等)的工程值,。子程序中變量名稱前的“#”表示該變量是局部變量,,它是編程軟件自動(dòng)添加的,輸入局部變量時(shí)不用輸入“#”號(hào),。特殊存儲(chǔ)器位SM0.0的常開(kāi)觸點(diǎn)總是閉合。

4.子程序的調(diào)用
可以在主程序,、其他子程序或中斷程序中調(diào)用子程序,,調(diào)用子程序時(shí)將執(zhí)行子程序中的指令,直至子程序結(jié)束,,然后返回調(diào)用它的程序中該子程序調(diào)用指令的下一條指令之處,。
創(chuàng)建子程序后,在上圖左邊指令樹(shù)下面的“調(diào)用子程序”文件夾中自動(dòng)生成剛創(chuàng)建的子程序“模擬量計(jì)算”對(duì)應(yīng)的圖標(biāo)。
在梯形圖程序中插入子程序調(diào)用指令時(shí),,首先打開(kāi)主程序,,顯示出需要調(diào)用子程序的網(wǎng)絡(luò)。打開(kāi)指令樹(shù)下面的“調(diào)用子程序”文件夾,,用鼠標(biāo)左鍵按住需要調(diào)用的子程序圖標(biāo),,將它“拖”到程序編輯器中需要的位置。放開(kāi)左鍵,,子程序塊便被放置在該位置,。
子程序方框中左邊的“轉(zhuǎn)換值”等是在子程序“模擬量計(jì)算”的變量聲明表中定義的輸入?yún)?shù),右邊的“模擬值”是輸出參數(shù),。它們被稱為子程序的形式參數(shù),,簡(jiǎn)稱為形參,形參在子程序內(nèi)部的程序中使用,。調(diào)用子程序時(shí),,需要為每個(gè)形參實(shí)際的參數(shù)(簡(jiǎn)稱為實(shí)參),例如為形參“轉(zhuǎn)換值”的實(shí)參為模擬量輸入字AIW2(見(jiàn)上圖),。
子程序調(diào)用指令中的實(shí)參的有效操作數(shù)為存儲(chǔ)器地址,、常量、全局符號(hào)和調(diào)用指令所在的POU中的局部變量,,不能被調(diào)用子程序中的局部變量,。
CPU調(diào)用子程序時(shí),輸入?yún)?shù)被復(fù)制到子程序的局部存儲(chǔ)器,,子程序執(zhí)行完后,,從局部存儲(chǔ)器復(fù)制輸出參數(shù)到的輸出參數(shù)地址。
工業(yè)自動(dòng)控制技術(shù)路線呈互相滲透,、互相融合的趨勢(shì)加上PLC通信能力的增強(qiáng)及人機(jī)界面技術(shù)的發(fā)展,,使用PLC組成各種控制非常容易 PLC的模型包括一個(gè)資源,運(yùn)行一個(gè)任務(wù),,控制一個(gè)程序,,且運(yùn)行于一個(gè)封閉中 1)PLC梯形圖中的某些編程元件沿用了繼電器這一名稱,如輸入繼電器,、輸出繼電器,、內(nèi)部輔助繼電器等,但是它們不是真實(shí)的物理繼電器(即硬件繼電器),,而是在中使用的編程元件使用掃描內(nèi)存位¨0 可在邏輯系列中連接方框這就要求在選擇PLC,、輸入/輸出模塊、I/O點(diǎn)數(shù)和內(nèi)存容量時(shí),,要適當(dāng)留有裕量,,以今后生產(chǎn)的發(fā)展和工藝的改進(jìn) 在西門(mén)子原型的演示中,,機(jī)器人手臂右側(cè)的顯示器上以非常簡(jiǎn)化的形式展示了這一點(diǎn)

數(shù)字量輸入
用于連接標(biāo)準(zhǔn)開(kāi)關(guān)和兩線制接近開(kāi)關(guān) (BERO)
數(shù)字量輸入模板用來(lái)實(shí)現(xiàn)PLC與數(shù)字量過(guò)程信號(hào)的連接。使用于連接標(biāo)準(zhǔn)開(kāi)關(guān)和兩線制接近開(kāi)關(guān)(BERO),。
數(shù)字量輸入模塊具有下列機(jī)械特性
設(shè)計(jì)和功能
T400 具有集成數(shù)字量和模擬量 I/O,、串行接口并支持連接位置編碼器(增量型、值),。根據(jù)應(yīng)用領(lǐng)域的不同,,有多種組態(tài) T400 的方式。您可以使用 STEP 7,、CFC 和 D7-SYS 自由組態(tài)模塊,,同時(shí)也可以選擇使用可隨時(shí)運(yùn)行的功能模塊完成一系列技術(shù)功能任務(wù)。另外,,您也可以使用預(yù)裝的標(biāo)準(zhǔn)軟件包(只需參數(shù)化即可),。這些軟件包也可作為源代碼,用于特定于應(yīng)用領(lǐng)域的更改,。以下應(yīng)用領(lǐng)域可使用標(biāo)準(zhǔn)軟件包:軸式復(fù)卷機(jī) (SPW420)在箔制造和加工系統(tǒng)中高性能,、高度的復(fù)卷機(jī)和拆卷機(jī)、紡織機(jī),、拉絲機(jī)等,。角同步 (SPA440)帶有可在廣泛范圍內(nèi)設(shè)置轉(zhuǎn)化率的角度同步、偏移角調(diào)整,、同步信號(hào)處理等,。橫切機(jī)/飛剪控制 (SPS450)
S7-200CPU提供了多個(gè)高速計(jì)數(shù)器(HSC0~HSC5)以響應(yīng)快速脈沖輸入信號(hào)。高速計(jì)數(shù)器的計(jì)數(shù)速度比PLC的掃描速度要快得多,,因此高速計(jì)數(shù)器可獨(dú)立于用戶程序工作,,不受掃描時(shí)間的限制。用戶通過(guò)相關(guān)指令,,設(shè)置相應(yīng)的特殊存儲(chǔ)器控制計(jì)數(shù)器的工作,。
1、高速計(jì)數(shù)器的工作模式和輸入
高速計(jì)數(shù)器有12種工作模式,,每個(gè)計(jì)數(shù)器都有時(shí)鐘,、方向控制、復(fù)位起動(dòng)等特定輸入,。對(duì)于雙向計(jì)數(shù)器,,兩個(gè)時(shí)鐘都可以運(yùn)行在最高頻率,高速計(jì)數(shù)器的最高技術(shù)頻率取決于CPU的類型,。在正交模式下,,可選擇1×(1倍速)或者4×(4倍速)輸入脈沖頻率的內(nèi)部技術(shù)頻率。高速計(jì)數(shù)器有8種4類工作模式,。
(1)無(wú)外部方向輸入信號(hào)的單/減計(jì)數(shù)器(模式0和模式2),。
用高數(shù)計(jì)數(shù)器的控制字的第3位控制加減計(jì)數(shù),該位為1時(shí)為加計(jì)數(shù),,為0時(shí)為減計(jì)數(shù),。
(2)有外部方向輸入信號(hào)的單/減計(jì)數(shù)器(模式3和模式5)。
方向信號(hào)為1時(shí),,為加計(jì)數(shù),,方向信號(hào)為0時(shí),為減計(jì)數(shù),。
(3)有加計(jì)數(shù)時(shí)鐘脈沖和減計(jì)數(shù)時(shí)鐘脈沖輸入的雙相計(jì)數(shù)器(模式6和模式8),。
若加計(jì)數(shù)脈沖和減計(jì)數(shù)脈沖的上升沿出現(xiàn)的時(shí)間間隔短,高速計(jì)數(shù)器認(rèn)為這兩個(gè)事件同時(shí)發(fā)生,,當(dāng)前值不變,,也不會(huì)有計(jì)數(shù)方向的變化的指示。否則高速計(jì)數(shù)器能捕捉到每一個(gè)獨(dú)立的信號(hào),。
(4)A/B相正交計(jì)數(shù)器(模式9和模式11)
它的兩路計(jì)數(shù)脈沖的相位相差90°,,正轉(zhuǎn)時(shí)A相時(shí)鐘脈沖比B相時(shí)鐘脈沖超前90°。反轉(zhuǎn)時(shí),,A相時(shí)鐘脈沖比B相時(shí)鐘脈沖滯后90°,。利用這一特點(diǎn),正轉(zhuǎn)時(shí)加計(jì)數(shù),,反轉(zhuǎn)時(shí),,減計(jì)數(shù)。
高速計(jì)數(shù)器的工作模式和輸入點(diǎn)見(jiàn)表8-1,。
表8-1高速計(jì)數(shù)器的工作模式和輸入點(diǎn)

【關(guān)鍵點(diǎn)】S7-200CPU221,、CPU222沒(méi)有HSC1和HSC2;CPU224,、CPU224XP和CPU226擁有全部的6個(gè)高速計(jì)數(shù)器,。只有HSC0和HSC3支持模式12,其中HSC0計(jì)數(shù)Q0.0的輸出脈沖,,其中HSC3計(jì)數(shù)Q0.1的輸出脈沖,,在此模式下工作時(shí),并不需要外部接線,。
高速計(jì)數(shù)器的硬件輸入接口與普通數(shù)字量接口使用相同的地址,。已經(jīng)定義用于高速計(jì)數(shù)器的輸入點(diǎn)不能再用于其他功能。但某些模式下,,沒(méi)有用到的輸入點(diǎn)還可以用作開(kāi)關(guān)量輸入點(diǎn),。
2、高速計(jì)數(shù)器的控制字和初始值,、預(yù)置值
所有的高速計(jì)數(shù)器在S7-200CPU的特殊存儲(chǔ)區(qū)中都有各自的控制字,??刂谱钟脕?lái)定義計(jì)數(shù)器的計(jì)數(shù)方式和其他一些設(shè)置,以及在用戶程序中對(duì)計(jì)數(shù)器的運(yùn)行進(jìn)行控制,。高速計(jì)數(shù)器的控制字的位地址分配見(jiàn)表8-2,。
表8-2高速計(jì)數(shù)器的控制字的位地址分配表

高速計(jì)數(shù)器都有初始值和預(yù)置值,所謂初始值就是高速計(jì)數(shù)器的起始值,,而預(yù)置值就是計(jì)數(shù)器運(yùn)行的目標(biāo)值,,當(dāng)前值(當(dāng)前計(jì)數(shù)值)等于預(yù)置值時(shí),會(huì)引發(fā)一個(gè)內(nèi)部中斷事件,,初始值,、預(yù)置值和當(dāng)前值都是32位有符號(hào)整數(shù)。必須先設(shè)置控制字以允許裝入初始值和預(yù)置值,,并且初始值和預(yù)置值存入特殊存儲(chǔ)器中,,然后執(zhí)行HSC指令使新的初始值和預(yù)置值有效。裝載高速計(jì)數(shù)器的初始值,、預(yù)置值和當(dāng)前值的寄存器與計(jì)數(shù)器的對(duì)應(yīng)關(guān)系見(jiàn)表8-3,。
表8-3裝載初始值、預(yù)置值和當(dāng)前值的寄存器與計(jì)數(shù)器的對(duì)應(yīng)關(guān)系表

以下用1個(gè)例子說(shuō)明高速計(jì)數(shù)器在轉(zhuǎn)速測(cè)量中的應(yīng)用,。
【例8-2】一臺(tái)電動(dòng)機(jī)上配有一臺(tái)光電編碼器(光電編碼器與電動(dòng)機(jī)同軸安裝),,試用S7-200CPU測(cè)量電動(dòng)機(jī)的轉(zhuǎn)速。
解:由于光電編碼器與電動(dòng)機(jī)同軸安裝,,所以光電編碼器的轉(zhuǎn)述就是電動(dòng)機(jī)的轉(zhuǎn)速,。接線圖如圖8-5所示。
1,、軟硬件配置
①1套STEP7-MicroWINV4.0SP9,;
②1臺(tái)CPU226CN;
③1臺(tái)光電編碼器(1024線),;
④1根編程電纜(或者CP5611卡),;

圖8-5接線圖
【關(guān)鍵點(diǎn)】光電編碼器的輸出脈沖信號(hào)有+5V和+24V(或者18V),而多數(shù)S7-200CPU的輸入端的有效信號(hào)是+24V(PNP接法時(shí)),只有CPU224XP型的I0.3,、I0.4和I0.5三個(gè)輸入端子既可以接入+5V的信號(hào),,也可以接入+24V的信號(hào)。因此,,在選用光電編碼器時(shí)要注意不要選用+5V輸出的光電編碼器,。圖8-4中的編碼器是PNP型輸出,這一點(diǎn)也非常重要,,涉及到程序的初始化,,在選型時(shí)要注意。此外,,編碼器的A-端子要與PLC的1M短接,。否則不能形成回路,。
那么若只有+5V輸出的光電編碼器是否可以直接用于以上回路測(cè)量速度呢?答案是不能,,但經(jīng)過(guò)三極管升壓后是可行,,具體解決方案讀者自行思考。
2,、編寫(xiě)程序
本例的編程思路是先對(duì)高速計(jì)數(shù)器進(jìn)行初始化,起動(dòng)高數(shù)計(jì)數(shù)器,,在100mS內(nèi)高數(shù)計(jì)數(shù)器計(jì)數(shù)個(gè)數(shù),,轉(zhuǎn)化成每分鐘編碼器旋轉(zhuǎn)的圈數(shù)就是光電編碼器的轉(zhuǎn)速,也就是電動(dòng)機(jī)的轉(zhuǎn)速,。光電編碼器為1024線,,也就是說(shuō),高數(shù)計(jì)數(shù)器每收到1024個(gè)脈沖,,電動(dòng)機(jī)就轉(zhuǎn)1圈,。電動(dòng)機(jī)的轉(zhuǎn)速公式如下:

以上公式中:n為電動(dòng)機(jī)的轉(zhuǎn)速,N為100mS內(nèi)高數(shù)計(jì)數(shù)器計(jì)數(shù)個(gè)數(shù)(收到脈沖個(gè)數(shù)),。
程序如圖8-6至圖8-9所示,。

圖8-6主程序

圖8-7子程序SBR_0

圖8-8子程序SBR_1
