{西門子與客戶攜手,讓關(guān)鍵所在,逐一實現(xiàn)}
德國制造: 現(xiàn)貨 聯(lián) 系 人: 黃勇《黃工》 24小時聯(lián)系手機(jī): 13701633515
全新原裝: 參數(shù)
質(zhì)量保證: 保修 直線銷售 電 話: 021-31660605 在 線 商 務(wù) QQ: 77956468
價格優(yōu)勢: 特價
我公司大量現(xiàn)貨供應(yīng),價格優(yōu)勢,品質(zhì)保證,德國原裝進(jìn)口
凡在公司采購西門子產(chǎn)品,均可質(zhì)保一年,假一罰十
花30秒詢價,你會知道什么叫優(yōu)勢;花60秒咨詢,你會知道什么叫服務(wù);
合作一次,你會知道什么叫質(zhì)量!以質(zhì)量求生存,以信譽(yù)求發(fā)展。
我公司將提供一流的質(zhì)量,服務(wù)作為自已最重要的責(zé)任。
承諾一:1、絕對保證全新原裝進(jìn)口
承諾二:2、絕對保證安全準(zhǔn)時發(fā)貨
承諾三:3、絕對保證售后服務(wù)質(zhì)量
流程一:1、客戶確認(rèn)所需采購產(chǎn)品型號
流程二:2、我方會根據(jù)詢價單型號查詢價格以及交貨期,擬一份詳細(xì)正規(guī)報價單
流程三:3,客戶收到報價單并確認(rèn)型號無誤后訂購產(chǎn)品
流程四:4、報價單負(fù)責(zé)人根據(jù)客戶提供型號以及數(shù)量擬份銷售合同
流程五:5、客戶收到合同查閱同意后蓋章回傳并按照合同銷售額匯款到公司開戶行
流程六:6、我公司財務(wù)查到款后,業(yè)務(wù)員安排發(fā)貨并通知客戶跟蹤運單
1、 配置OPC服務(wù)器
對于服務(wù)器的配置與同步通訊的配置一樣,這里不需再講解,若有不清楚的,可以參閱之前發(fā)布的<運用VC#編程通過OPC方式實現(xiàn)PC機(jī)與西門子PLC通訊>
2、 OPC編程
變量組、項的命名規(guī)則與同步通訊的一樣,這里不再描敘,下面主要就開發(fā)一個異步通訊類 AsynServer來講解如何編程。
<1>、引用
在VC#開發(fā)環(huán)境中添加對OpcRcw.Da庫以及OpcRcw.Comn庫的引用,該庫屬于.NET庫,不屬于COM庫,西門子雖然編寫了類庫,以提供對.NET平臺的支持,但這些類庫仍然難于編程,里面包含了大量的在托管和非托管區(qū)傳輸數(shù)據(jù),因此我們需要在它的基礎(chǔ)上再開發(fā)一個類庫,以簡化以后的編程,首先在類的開頭使用命名空間:
using OpcRcw.Comn;
using OpcRcw.Da;
using System.Runtime.InteropServices;
using System.Collections;
<2>、編程
異步編程的原理就是在OPC服務(wù)器那邊檢測當(dāng)前活動的變量組,一但檢測到某一個變量,譬如變量Q0.0從1變成0,就會執(zhí)行一個回調(diào)函數(shù),以實現(xiàn)針對變量發(fā)生變化時需要實現(xiàn)的動作,在這里可以采用委托來實現(xiàn)該功能。
1、 在命名空間的內(nèi)部、類 AsynServer聲明之前添加委托的申明:
// 定義用于返回發(fā)生變化的項的值和其對應(yīng)的客戶句柄
public delegate void DataChange(object[] values,int[] itemsID);
2、 該類繼承于西門子提供的庫接口IOPCDataCallback
public class AsynServer:IOPCDataCallback
在類的開頭部分聲明變量:
struct groupStru
{
public int groupID;
public object groupObj;
}
internal const int LOCALE_ID = 0x407; //本地語言
private Guid iidRequiredInterface;
private string serverType="";
private int hClientGroup = 0; //客戶組號
private int nSvrGroupID; // server group handle for the added group
private Hashtable hashGroup; //用于把組收集到一起
private int hClientItem=0; //Item號
3、編寫構(gòu)造函數(shù),接收委托參數(shù)已確定當(dāng)數(shù)據(jù)發(fā)生變化時需要執(zhí)行的方法入口點:
//創(chuàng)建服務(wù)器
//svrType 服務(wù)器類型的枚舉
//dataChange 提供用于在數(shù)據(jù)發(fā)生變化時需要執(zhí)行的函數(shù)入口
public AsynServer(ServerType svrType,DataChange dataChange)
{
switch(svrType)
{
case ServerType.OPC_SimaticHMI_PTPR
serverType="OPC.SimaticHMI.PTPro";break;
case ServerType.OPC_SimaticNET:
serverType="OPC.SimaticNET";break;
case ServerType.OPC_SimaticNET_DP:
serverType="OPC.SimaticNET.DP";break;
case ServerType.OPC_SimaticNET_PD:
serverType="OPC.SimaticNET.PD";break;
case ServerType.OPCServer_WinCC:
serverType="OPCServer.WinCC";break;
}
hashGroup=new Hashtable(11);
dtChange=dataChange;
}
4、創(chuàng)建服務(wù)器
// 創(chuàng)建一個OPC Server接口
//error 返回錯誤信息
//若為true,創(chuàng)建成功,否則創(chuàng)建失敗
public bool Open(out string error)
{
error="";bool success=true;
Type svrComponenttyp ;
//獲取 OPC Server COM 接口
iidRequiredInterface = typeof(IOPCItemMgt).GUID;
svrComponenttyp = System.Type.GetTypeFromProgID(serverType);
try
{
//創(chuàng)建接口
pIOPCServer =(IOPCServer)System.Activator.CreateInstance(svrComponenttyp);
error="";
}
catch (System.Exception err) //捕捉失敗信息
{
error="錯誤信息:"+err.Message;success=false;
}
return success;
}
5、 編寫添加Group的函數(shù)
///
定貨號 | 注釋 |
CPU | |
6ES7 211-0AA23-0XB0 | CPU221 DC/DC/DC,6輸入/4輸出 |
6ES7 211-0BA23-0XB0 | CPU221 繼電器輸出,6輸入/4輸出 |
6ES7 212-1AB23-0XB8 | CPU222 DC/DC/DC,8輸入/6輸出 |
6ES7 212-1BB23-0XB8 | CPU222 繼電器輸出,8輸入/6輸出 |
6ES7 214-1AD23-0XB8 | CPU224 DC/DC/DC,14輸入/10輸出 |
6ES7 214-1BD23-0XB8 | CPU224 繼電器輸出,14輸入/10輸出 |
6ES7 214-2AD23-0XB8 | CPU224XP DC/DC/DC,14DI/10DO,2AI/1AO |
6ES7 214-2BD23-0XB8 | CPU224XP 繼電器輸出,14DI/10DO,2AI/1AO |
6ES7 216-2AD23-0XB8 | CPU226 DC/DC/DC,24輸入/16輸出 |
6ES7 216-2BD23-0XB8 | CPU226 繼電器輸出,24輸入/16輸出 |
擴(kuò)展模塊 | |
6ES7 221-1BH22-0XA8 | EM221 16入 24VDC,開關(guān)量 |
6ES7 221-1BF22-0XA8 | EM221 8入 24VDC,開關(guān)量 |
6ES7 221-1EF22-0XA0 | EM221 8入 120/230VAC,開關(guān)量 |
6ES7 222-1BF22-0XA8 | EM222 8出 24VDC,開關(guān)量 |
6ES7 222-1EF22-0XA0 | EM222 8出 120V/230VAC,0.5A 開關(guān)量 |
6ES7 222-1HF22-0XA8 | EM222 8出 繼電器 |
6ES7 222-1BD22-0XA0 | EM222 4出 24VDC 固態(tài)-MOSFET |
6ES7 222-1HD22-0XA0 | EM222 4出 繼電器 干觸點 |
6ES7 223-1BF22-0XA8 | EM223 4入/4出 24VDC,開關(guān)量 |
6ES7 223-1HF22-0XA8 | EM223 4入 24VDC/4出 繼電器 |
6ES7 223-1BH22-0XA8 | EM223 8入/8出 24VDC,開關(guān)量 |
6ES7 223-1PH22-0XA8 | EM223 8入 24VDC/8出 繼電器 |
6ES7 223-1BL22-0XA8 | EM223 16入/16出 24VDC,開關(guān)量 |
6ES7 223-1PL22-0XA8 | EM223 16入 24VDC/16出 繼電器 |
6ES7 223-1BM22-0XA8 | EM223 32入/32出 24VDC,開關(guān)量 |
6ES7 223-1PM22-0XA8 | EM223 32入 24VDC/32出 繼電器 |
6ES7 231-0HC22-0XA8 | EM231 4入*12位精度,模擬量 |
6ES7 231-7PB22-0XA8 | EM231 2入*熱電阻,模擬量 |
6ES7 231-7PD22-0XA8 | EM231 4入*熱電偶,模擬量 |
6ES7 232-0HB22-0XA8 | EM232 2出*12位精度,模擬量 |
6ES7 235-0KD22-0XA8 | EM235 4入/1出*12位精度,模擬量 |
6ES7 277-0AA22-0XA0 | EM277 PROFIBUS-DP接口模塊 |
6GK7 243-2AX01-0XA0 | CP243-2 AS-i接口模塊 |
6ES7 253-1AA22-0XA0 | EM253 位控模塊 |
6ES7 241-1AA22-0XA0 | EM241 調(diào)制解調(diào)器模塊 |
6GK7 243-1EX00-0XE0 | CP243-1 工業(yè)以太網(wǎng)模塊 |
6GK7 243-1GX00-0XE0 | CP243-1IT 工業(yè)以太網(wǎng)模塊 |
西門子SIMATIC S7家族中的控制器按照應(yīng)用場合、性能等分為S7-1200、S7-200、S7-300、S7-400等各種不同的系列。而每一系列中又細(xì)分不同的型號,例如,S7-400系列中有S7-412、S7-414、S7-416、S7-417等型號。不同系列、不同型號的控制器對應(yīng)不同的控制性能(運算速度、內(nèi)存容量等)。本文基于S7-400系列控制器,詳細(xì)介紹內(nèi)存的類型、分配情況及實際使用過程中可能的內(nèi)存優(yōu)化方法。
1.內(nèi)存類型
S7-400型控制器的內(nèi)存按照功能的不同,可以分為:
√ 系統(tǒng)內(nèi)存(System Memory)--- 控制器的自身功能(M、T、C等)
√ 工作內(nèi)存(work Memory)--- 用于運行程序;
√ 裝載內(nèi)存(Load Memory)--- 用于裝載程序;
其中,工作內(nèi)存部分又可以細(xì)分為:
√ 代碼工作內(nèi)存(Code Memory)--- 用于運行程序的代碼部分;
√ 數(shù)據(jù)工作內(nèi)存(Data Memory)--- 用于運行程序的數(shù)據(jù)部分;
S7-400型控制器的內(nèi)存按照集成方式的不同,可以分為:
√ 集成內(nèi)存(Integrated)--- 直接集成在控制器內(nèi)部隨控制器一起提供,無需額外訂購;
√ 擴(kuò)展內(nèi)存(Expanded)--- 通過擴(kuò)展存儲卡的方式擴(kuò)展提供,需要額外訂購;
一般情況下,控制器的工作內(nèi)存不可擴(kuò)展,而裝載內(nèi)存則可以通過FEPROM或RAM的方式進(jìn)行擴(kuò)展。如果希望和集成的RAM裝載內(nèi)存無縫擴(kuò)展使用,則擴(kuò)展的裝載內(nèi)存必須選用RAM類型。下圖為CPU 412的性能參數(shù)示例。
圖 1 CPU 412的性能參數(shù)示例
2.內(nèi)存分配
控制器內(nèi)存詳細(xì)分配情況如下表所示。#
內(nèi)存類型 | 內(nèi)容 | 注釋信息 |
裝載內(nèi)存 | 系統(tǒng)數(shù)據(jù)/System Data | 硬件組態(tài)數(shù)據(jù) |
程序塊/Program Blocks | 程序塊 | |
(FBs,FCs,OBs,Symbols1),Comments1)) | ||
工作內(nèi)存 | 數(shù)據(jù)塊/Data Blocks | 數(shù)據(jù)塊 (DBs) |
(數(shù)據(jù)部分) | 系統(tǒng)數(shù)據(jù)/System Data | 硬件組態(tài)信息,非裝載內(nèi)存中的全部硬件組態(tài)數(shù)據(jù) |
SFC動態(tài)創(chuàng)建的DB塊/DBs Created by SFC | 通過SFC21/22等動態(tài)創(chuàng)建的數(shù)據(jù)塊 | |
本地數(shù)據(jù)/Local Data | 各優(yōu)先級中斷所需的臨時數(shù)據(jù)存儲區(qū) | |
工作內(nèi)存 | 邏輯功能塊/Logic Blocks | 邏輯功能塊 (FBs,FCs) |
(代碼部分) | 通信數(shù)據(jù)緩沖/Communication Data Buffer2) |