在STEP7(TIA Portal)中如何為S7-1200/1500實現(xiàn)積分編程?
為了近似測定面積,使用以SCL語言編寫的FB "Integration"程序塊可以持續(xù)對區(qū)域面積進(jìn)行累加。
說明
積分是對給定函數(shù)曲線的面積進(jìn)行數(shù)學(xué)計算。但是實際曲線往往沒有明確的數(shù)學(xué)關(guān)系,而是隨時間變化的模擬量。積分計算就是把所有由兩個過程值與時間所圍成的梯形區(qū)域面積相加,梯形面積等于兩個過程值的平均值乘以時間間隔。
下載附件是以SCL語言編寫的用于計算積分的 "Integration" 功能塊
表示了FB "Integration"的調(diào)用參數(shù)。FB "Integration"中 "in"參數(shù)為轉(zhuǎn)化為浮點數(shù)的模擬量輸入值。
如果"enable" 參數(shù)接收到 "False" 值,那么積分計算將停止并且"out"參數(shù)輸出后計算值。
如果 "reset"接收到 "True"值,那么"out"輸出將復(fù)位為零。
計算結(jié)果存儲于 "out" 輸出。
當(dāng)使能積分后,"error"會在啟動計算時輸出一個周期的"True"信號(信號在積分計算期間失效)。
要使用 "in"參數(shù)的輸入值啟動積分計算,必須
創(chuàng)建一個功能,并聲明輸入變量為"Int"類型。圖.01 顯示了對于"AccessGroupInt"功能塊的編程示例,通過index進(jìn)行間接尋址并返回值??梢栽诔绦蛑兄苯邮褂瞄g接訪問,例如使用指令#TempValue:= "AccessGroupInt"(#Index);。這一編程方法
可追蹤,因為可以使用交叉索引。
安全,因為僅使用了預(yù)定義的內(nèi)存區(qū)。
通用,因為既可以用于標(biāo)準(zhǔn)塊也可以用于優(yōu)化的數(shù)據(jù)區(qū) 。
在下面的示例中數(shù)據(jù)被從三個不同的優(yōu)化的數(shù)據(jù)塊中讀出或?qū)懭?。三個數(shù)據(jù)塊"Silo_Water", "Silo_Sugar" 和"Silo_Milk"都包含相同的變量聲明:
DB 變量1:"MyBool" Bool類型
DB 變量2:"MyInt" Int類型
DB 變量3:"MyWord" Word類型
創(chuàng)建的PLC數(shù)據(jù)類型"SiloUDT"用于尋址包含不同數(shù)據(jù)類型的DB變量。 "AccessGroupSiloRead"功能塊用于讀出返回值,是由PLC 數(shù)據(jù)類型 "SiloUDT"定義的?;诖丝梢栽谝粋€FB中間接訪問,例如如圖.03所示的指令:
"Silo_Handling_OnlyReading"("AccessGroupSiloRead"(Index:= #Silo_Index));
創(chuàng)建環(huán)境
此FAQ中的截屏由 STEP 7 (TIA Portal) V13創(chuàng)建。
創(chuàng)建的PLC數(shù)據(jù)類型"SiloUDT"用于尋址包含不同數(shù)據(jù)類型的DB變量。 "AccessGroupSiloRead"功能塊用于讀出返回值,是由PLC 數(shù)據(jù)類型 "SiloUDT"定義的?;诖丝梢栽谝粋€FB中間接訪問,例如如圖.03所示的指令:
創(chuàng)建環(huán)境
此FAQ中的截屏由 STEP 7 (TIA Portal) V13創(chuàng)建。
在STEP7(TIA Portal)中如何為S7-1200/1500實現(xiàn)積分編程?
為了近似測定面積,使用以SCL語言編寫的FB "Integration"程序塊可以持續(xù)對區(qū)域面積進(jìn)行累加。
說明
積分是對給定函數(shù)曲線的面積進(jìn)行數(shù)學(xué)計算。但是實際曲線往往沒有明確的數(shù)學(xué)關(guān)系,而是隨時間變化的模擬量。積分計算就是把所有由兩個過程值與時間所圍成的梯形區(qū)域面積相加,梯形面積等于兩個過程值的平均值乘以時間間隔。
下載附件是以SCL語言編寫的用于計算積分的 "Integration" 功能塊
表示了FB "Integration"的調(diào)用參數(shù)。FB "Integration"中 "in"參數(shù)為轉(zhuǎn)化為浮點數(shù)的模擬量輸入值。
如果"enable" 參數(shù)接收到 "False" 值,那么積分計算將停止并且"out"參數(shù)輸出后計算值。
如果 "reset"接收到 "True"值,那么"out"輸出將復(fù)位為零。
計算結(jié)果存儲于 "out" 輸出。
當(dāng)使能積分后,"error"會在啟動計算時輸出一個周期的"True"信號(信號在積分計算期間失效)。
要使用 "in"參數(shù)的輸入值啟動積分計算,必須
下表列出了 FB "Integration" 的輸入和輸出參數(shù)。
參數(shù) 接口 數(shù)據(jù)類型 描述
in Input DInt 需要做積分計算的值
enable Input Bool 使能積分計算
reset Input Bool 復(fù)位( 為 True 時復(fù)位輸出參數(shù))
out Output LReal 積分后的值(可保持)
error Output Bool 錯誤輸出
在STEP7(TIA Portal)中如何安全地并且間接地尋址?
采用間接尋址時,只有程序執(zhí)行時,用于讀或?qū)憯?shù)值的地址才得以確定。使用這種方法可以減少編程量并使得程序更靈活。通常來講,程序創(chuàng)建后訪問地址也就確定了。為了使得間接尋址更靈活和更安全,可以
使用"Array"數(shù)據(jù)類型用于組合相同的數(shù)據(jù)類型。
對于不同的存儲區(qū),采用index來訪問相關(guān)的針對每個應(yīng)用不同的變量。
在下面的例子中,對于三個變量的訪問采用了不同的存儲區(qū)。表01 顯示了三個變量的訪問列表,每個都有單獨的索引。
創(chuàng)建一個功能,并聲明輸入變量為"Int"類型。圖.01 顯示了對于"AccessGroupInt"功能塊的編程示例,通過index進(jìn)行間接尋址并返回值。可以在程序中直接使用間接訪問,例如使用指令#TempValue:= "AccessGroupInt"(#Index);。這一編程方法
可追蹤,因為可以使用交叉索引。
安全,因為僅使用了預(yù)定義的內(nèi)存區(qū)。
通用,因為既可以用于標(biāo)準(zhǔn)塊也可以用于優(yōu)化的數(shù)據(jù)區(qū) 。
在下面的示例中數(shù)據(jù)被從三個不同的優(yōu)化的數(shù)據(jù)塊中讀出或?qū)懭?。三個數(shù)據(jù)塊"Silo_Water", "Silo_Sugar" 和"Silo_Milk"都包含相同的變量聲明:
DB 變量1:"MyBool" Bool類型
DB 變量2:"MyInt" Int類型
DB 變量3:"MyWord" Word類型
創(chuàng)建的PLC數(shù)據(jù)類型"SiloUDT"用于尋址包含不同數(shù)據(jù)類型的DB變量。 "AccessGroupSiloRead"功能塊用于讀出返回值,是由PLC 數(shù)據(jù)類型 "SiloUDT"定義的?;诖丝梢栽谝粋€FB中間接訪問,例如如圖.03所示的指令:
創(chuàng)建環(huán)境
此FAQ中的截屏由 STEP 7 (TIA Portal) V13創(chuàng)建。
西門子S7-1200與博途以及組態(tài)王的通訊設(shè)置
在線監(jiān)控可在線監(jiān)控PLC寄存器狀態(tài)
(2)PLC與組態(tài)王通過以太網(wǎng)的方式通信的設(shè)置:
1、確認(rèn)計算機(jī)中安裝有以太網(wǎng)卡,并與PLC 連接到同一網(wǎng)絡(luò)中(直接通過網(wǎng)線直連)。
2、通過Step7編程軟件為通信模塊(CP443-1)設(shè)定IP地址和子網(wǎng)掩碼,并下傳到PLC中如IP地址(192.168.0.1)、子網(wǎng)掩碼(255.255.255.0)。 此步驟已經(jīng)在博途中組態(tài)PLC的過程中完成了,通過PLC屬性查看以太網(wǎng)地址。
3、為計算機(jī)設(shè)定IP地址和子網(wǎng)掩碼,如IP地址(192.168.0.110)、子網(wǎng)掩碼(255.255.255.0)。 這里以Win7系統(tǒng)為例 ※打開網(wǎng)絡(luò)共享中心,雙擊更改適配器選項
決辦法:
1、取消你DB塊中的“優(yōu)化塊訪問”見圖3;
2、然后按圖2*行那樣建立地址用來存儲需讀寫的數(shù)據(jù),編譯該DB塊;
3、圖3是我用1500做modbus TCP通信用到的指針尋址;
S7-1200運動控制指令MC_Reset
MC_Reset
指令名稱:確認(rèn)故障
功能:用來確認(rèn)“伴隨軸停止出現(xiàn)的運行錯誤”和“組態(tài)錯誤”。
使用要點:Execute用上升沿觸發(fā)。
『注意』部分輸入/輸出管腳沒有具體介紹,請用戶參考MC_Power指令中的說明。
輸入端:
①EN:該輸入端是MC_Reset指令的使能端。
②Axis:軸名稱。
③Execute:MC_Reset指令的啟動位,用上升沿觸發(fā)。
④Restart:
Restart = 0:用來確認(rèn)錯誤。
Restart = 1:將軸的組態(tài)從裝載存儲器下載到工作存儲器(只有在禁用軸的時候才能執(zhí)行該命令)。
輸出端:除了Done指令,其他輸出管腳同MC_Power指令,這里不再贅述。
⑥D(zhuǎn)one:表示軸的錯誤已確認(rèn)。