西門子0.25KW變頻器6SL3211-0AB12-5UA1,西門子0.25KW變頻器6SL3211-0AB12-5UA1 {西門子與客戶攜手,讓關(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ì)量求生存,以信譽求發(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ā)貨并通知客戶跟蹤運單

運用VC#編程通過OPC方式實現(xiàn)PC機(jī)與西門子PLC通訊
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ù)
///
/// 添加組
///
/// 組名
/// /創(chuàng)建時,組是否被激活
/// //組的刷新頻率,以ms為單位
/// 返回錯誤信息
/// 若為true,添加成功,否則添加失敗
public bool AddGroup(string groupName,int bActive,int updateRate,out string error)
{
error="";bool success=true;
int dwLCID = 0x407; //本地語言為英語
int pRevUpdateRate;
float deadband = 0;
// 處理非托管COM內(nèi)存
GCHandle hDeadband;
IntPtr pTimeBias = IntPtr.Zero;
hDeadband = GCHandle.Alloc(deadband,GCHandleType.Pinned);
try
{
pIOPCServer.AddGroup(groupName, //組名
bActive, //創(chuàng)建時,組是否被激活
updateRate, //組的刷新頻率,以ms為單位
hClientGroup, //客戶號
pTimeBias, //這里不使用
(IntPtr)hDeadband,
dwLCID, //本地語言
out nSvrGroupID, //移去組時,用到的組ID號
out pRevUpdateRate, //返回組中的變量改變時的最短通知時間間隔
ref iidRequiredInterface,
out pobjGroup1); //指向要求的接口
hClientGroup=hClientGroup+1;
groupStru grp=new groupStru();
grp.groupID=nSvrGroupID;grp.groupObj=pobjGroup1;
this.hashGroup.Add(groupName,grp);//儲存組信息
// 對異步操作設(shè)置回調(diào),初始化接口
pIConnectionPointContainer = (IConnectionPointContainer)pobjGroup1;
Guid iid = typeof(IOPCDataCallback).GUID;
pIConnectionPointContainer.FindConnectionPoint(ref iid,out pIConnectionPoint);
pIConnectionPoint.Advise(this,out dwCookie);
}
catch (System.Exception err) //捕捉失敗信息
{
error="錯誤信息:"+err.Message;success=false;
}
finally
{
if (hDeadband.IsAllocated) hDeadband.Free();
}
return success;
}
6、 編寫激活、或者取消激活組的函數(shù)
在同步編程中對于組的激活或者取消激活沒有實質(zhì)的意義,但在異步通訊編程中卻異常重要,這是因為OPC服務(wù)器只對當(dāng)前處于活動狀態(tài)的組中的變量進(jìn)行監(jiān)控,同時這也是很有必要的,因為我們可以把不同界面中的變量編程不同的組,即同一界面中的變量規(guī)成一個組,而在某一時刻提供給用戶的只有一個界面,讓該界面中用到的組處于活動狀態(tài),這樣執(zhí)行委托調(diào)用時只會執(zhí)行于該界面中有關(guān)的變量檢測,而如果讓所有的組處于活動狀態(tài),則當(dāng)前沒有顯示給用戶的界面用到的變量若發(fā)生變化也會觸發(fā)對委托函數(shù)的調(diào)用,這根本是沒有必要的,同時會大大降低程序的性能,請嚴(yán)格控制組的激活。
///
/// 激活或者取消激活組
///
/// 指定組名
/// true為激活,false為取消激活
/// 若有錯誤,返回錯誤信息
/// 若為true,添加成功,否則添加失敗
public bool AciveGroup(string groupName,bool toActive,out string error)
{
error="";bool success=true;
//通過名稱獲取組
object grp=((groupStru)hashGroup[groupName]).groupObj;
IOPCGroupStateMgt groupStateMgt=(IOPCGroupStateMgt)grp;
//初始化傳遞參數(shù)
IntPtr pRequestedUpdateRate = IntPtr.Zero; //由客戶指定的Item更新間隔時間
int nRevUpdateRate = 0; //由服務(wù)器返回的能夠更新的最短時間間隔
IntPtr hClientGroup = IntPtr.Zero; //客戶組
IntPtr pTimeBias = IntPtr.Zero;
IntPtr pDeadband = IntPtr.Zero;
IntPtr pLCID = IntPtr.Zero;
// 激活或者取消激活組
int nActive = 0;
GCHandle hActive = GCHandle.Alloc(nActive,GCHandleType.Pinned);
if(toActive)
hActive.Target = 1;
else
hActive.Target = 0;
try
{
groupStateMgt.SetState(pRequestedUpdateRate,out nRevUpdateRate,hActive.AddrOfPinnedObject(),pTimeBias,pDeadband,pLCID,hClientGroup);
}
catch(System.Exception err)
{
error="錯誤信息:"+err.Message;success=false;
}
finally
{
hActive.Free();
}
return success;
}
7、 向指定的組中添加變量的函數(shù)
///
/// 向指定的組添加一系列項
///
/// 指定組名
/// 完整的item名數(shù)組
/// 由服務(wù)器返回讀寫數(shù)據(jù)時需要使用的item號
/// 無錯誤,返回true,否則返回false
public bool AddItems(string groupName,string[] itemsName,int[] itemsID)
{
bool success=true;
OPCITEMDEF[] ItemDefArray=new OPCITEMDEF[itemsName.Length];
for(int i=0;i {
hClientItem=hClientItem+1; //客戶項自動加1
ItemDefArray[i].szAccessPath = ""; // 可選的通道路徑,對于Simatiic Net不需要。
ItemDefArray[i].szItemID = itemsName[i]; // ItemID, see above
ItemDefArray[i].bActive = 1; // item is active
ItemDefArray[i].hClient = hClientItem; // client handle ,在OnDataChange中會用到
ItemDefArray[i].dwBlobSize = 0; // blob size
ItemDefArray[i].pBlob = IntPtr.Zero; // pointer to blob
ItemDefArray[i].vtRequestedDataType = 4; //DWord數(shù)據(jù)類型
}
//初始化輸出參數(shù)
IntPtr pResults = IntPtr.Zero;
IntPtr pErrors = IntPtr.Zero;
try
{
// 添加項到組
object grp=((groupStru)hashGroup[groupName]).groupObj;
((IOPCItemMgt)grp).AddItems(itemsName.Length,ItemDefArray,out pResults,out pErrors);
int[] errors = new int[itemsName.Length];
IntPtr pos = pResults;
Marshal.Copy(pErrors, errors, 0,itemsName.Length);
for(int i=0;i {
if (errors[i] == 0)
{
OPCITEMRESULT result = (OPCITEMRESULT)Marshal.PtrToStructure(pos, typeof(OPCITEMRESULT));
itemsID[i] = result.hServer;
pos = new IntPtr(pos.ToInt32() + Marshal.SizeOf(typeof(OPCITEMRESULT)));
}
else
{
String pstrError;
pIOPCServer.GetErrorString(errors[0],0x407,out pstrError);
success=false;
break;
}
}
SetItenClient(groupName,itemsID,itemsID); //要求始終只有一個組被激活,才不會引起沖突。
}
catch (System.Exception err) // catch for error in adding items.
{
success=false;
//error="錯誤信息:"+error+err.Message;
}
finally
{
// 釋放非托管內(nèi)存
if(pResults != IntPtr.Zero)
{
Marshal.FreeCoTaskMem(pResults);
pResults = IntPtr.Zero;
}
if(pErrors != IntPtr.Zero)
{
Marshal.FreeCoTaskMem(pErrors);
pErrors = IntPtr.Zero;
}
}
return success;
}
S7-200的仿真軟件V2.0版使用方法與軟件下載
S7-200的仿真軟件不是西門子公司編寫的,國內(nèi)有人將它漢化,其V2.0版可以對S7-200編程軟件V4.0 編寫的程序仿真。該仿真軟件不能對S7-200的全部指令和全部功能仿真。但是它仍然不失為一個很好的學(xué)習(xí)S7-200的工具軟件。
該軟件不需要安裝,執(zhí)行其中的“S7-200仿真.EXE”文件,就可以打開它。點擊屏幕中間出現(xiàn)的畫面,輸入密碼6596后按回車鍵,開始仿真。
軟件自動打開的是老型號的CPU 214,應(yīng)執(zhí)行菜單命令“配置”→“CPU型號”,用打開的對話框設(shè)置CPU的型號為CPU 22x。
下圖左邊是CPU 224,CPU模塊下面是用于輸入數(shù)字量信號的小開關(guān)板。開關(guān)板下面的直線電位器用來設(shè)置SMB28和SMB29的值。
雙擊CPU模塊右邊空的方框,用出現(xiàn)的對話框添加擴(kuò)展模塊。
仿真軟件不能直接接收S7-200的程序代碼,必須用編程軟件的“導(dǎo)出”功能將S7-200的用戶程序轉(zhuǎn)換為擴(kuò)展名為“awl”的ASCII文本文件,然后再下載到仿真PLC中去。
在編程軟件中打開主程序OB1,執(zhí)行菜單命令“文件”→“導(dǎo)出”,導(dǎo)出ASCII文本文件。
在仿真軟件中執(zhí)行菜單命令“文件”→“裝載程序”,在出現(xiàn)的對話框中選擇下載什么塊,點擊“確定”按鈕后,在出現(xiàn)的“打開”對話框中雙擊要下載的*.awl文件,開始下載。下載成功后,CPU模塊上出現(xiàn)下載的ASCII文件的名稱,同時會出現(xiàn)下載的程序代碼文本框和梯形圖(見下圖)。
執(zhí)行菜單命令“PLC”→“運行”,開始執(zhí)行用戶程序。 如果用戶程序中有仿真軟件不支持的指令或功能,執(zhí)行菜單命令“PLC”→“運行”后,出現(xiàn)的對話框顯示出仿真軟件不能識別的指令。點擊“確定”按鈕,不能切換到RUN模式,CPU模塊左側(cè)的“RUN”LED的狀態(tài)不會變化。
可以用鼠標(biāo)點擊CPU模塊下面的開關(guān)板上的小開關(guān)來模擬輸入信號,通過模塊上的LED觀察PLC輸出點的狀態(tài)變化,來檢查程序執(zhí)行的結(jié)果是否正確。
在RUN模式點擊工具欄上的
按鈕,可以用程序狀態(tài)功能監(jiān)視梯形圖中觸點和線圈的狀態(tài)。
執(zhí)行菜單命令“查看”→“內(nèi)存監(jiān)控”,可以用出現(xiàn)的對話框監(jiān)控V、M、T、C等內(nèi)部變量的值。
- 豐富的指令集:
運算種類眾多,便于編程: - 基本運算,如二進(jìn)制邏輯運算、結(jié)果分配、保存、計數(shù)、創(chuàng)建時間、加載、傳輸、比較、移動、旋轉(zhuǎn)、創(chuàng)建補數(shù)、調(diào)用子程序(帶有局部變量)
- 集成通訊命令(例如,USS 協(xié)議、Modbus RTU、S7 通訊“T-Send/T-Receive”(T 發(fā)送/T 接收)或自由端口模式 (Freeport))
- 使用簡便的功能,如脈沖寬度調(diào)制、脈沖序列功能、運算功能、浮點運算功能、PID 閉環(huán)控制、跳轉(zhuǎn)功能、環(huán)路功能和代碼轉(zhuǎn)換
- 數(shù)學(xué)函數(shù),例如 SIN、COS、TAN、LN、EXP
- 計數(shù):
用戶友好的計數(shù)功能配以集成的計數(shù)器和高速計數(shù)器指令給用戶開辟了新的應(yīng)用領(lǐng)域 - 中斷處理:
- 邊緣觸發(fā)中斷(通過中斷輸入上過程信號的上升沿或下降沿激活)支持對過程事件的快速響應(yīng)。
- 時間觸發(fā)中斷。
- 可以在達(dá)到設(shè)定值或計數(shù)方向改變時觸發(fā)計數(shù)器中斷。
- 通訊中斷允許與外圍設(shè)備(如打印機(jī)或條形碼閱讀器)快速、簡單地交換信息
- 口令保護(hù)
- 測試和診斷功能:
易于使用的功能支持測試和診斷,例如,在線/離線診斷 - 在測試和診斷過程中“強(qiáng)制”輸入和輸出:
可以獨立于循環(huán)設(shè)置輸入和輸出,因此,可以永久設(shè)置輸入和輸出,例如,用于測試用戶程序 - 按照 PLCopen 對簡單運動進(jìn)行的運動控制
- 庫功能
S7-400自動化系統(tǒng)采用模塊化設(shè)計。它所具有的模板的擴(kuò)展和配置功
能使其能夠按照每個不同的需求靈活組合。
一個系統(tǒng)包括:
? 電源模板;
將SIMATIC S7-400連接到120/230 V AC或24 V DC電源上。
? 中央處理單元(CPU)
有多種CPU可供用戶選擇,有些帶有內(nèi)置的PROFIBUS-DP接口,
用于各種性能范圍。一個中央控制器可包括多個CPU,以加強(qiáng)性能。
? 各種信號模板(SM)用于數(shù)字量輸入和輸出(DI/DO)以及模擬量的輸入和輸出(AI/A0)
? 通訊模板(CP)用于總線連接和點到點的連接。
? 功能模板(FM):專門用于計數(shù)、定位、凸輪控制等任務(wù)。
簡單的設(shè)計系統(tǒng)使S7-400用途廣泛、靈活、適用性強(qiáng):
? 模板安裝非常簡便
? 背板總線集成在機(jī)架內(nèi)
? 方便、機(jī)械碼式的模板更換
? 經(jīng)過現(xiàn)場考驗的連接系統(tǒng)
? TOP連接用螺釘或彈簧端子的1到3線系統(tǒng)的預(yù)裝配接線
? 規(guī)定的安裝深度
所有端子和接線器都放置在模板凹槽內(nèi)并有蓋板保護(hù)
? 沒有槽位規(guī)則
如果用戶需要比中央控制器更多的功能,S7-400還可以擴(kuò)展:
? 最多21個擴(kuò)展單元(EU)21個擴(kuò)展單元(EU)都可以連接到中央控制器(CC)。
? 通過接口模板<IM)連接:中央控制器CC和擴(kuò)展單元EU通過發(fā)送IM和接收IM連接。
中央控制器(CC)可插入最多6個發(fā)送IM,每個EU可容納1個接收IM。每個發(fā)送IM有2個接口,
每個接口都能連接一條擴(kuò)展線路。
? 集中式擴(kuò)展:這種擴(kuò)展方式適用于小型配置或控制柜直接在機(jī)器上的場合。每個發(fā)送IM
接口可支持4個EU,如有必要,還可同時提供5V電源。中央控制器和最后一個EU的最大距離是.5
m(帶5 V電源);3 m(不帶5 V電源)。 ? 用EU進(jìn)行分布式擴(kuò)展: 這種方式適用于分布范圍廣,
并在一個地方有幾個
EU的場合。發(fā)送IM的每個接口最多可支持4個EU??梢允褂肧7-400 EU,或SIMATIC S5 EU。
中央控制器和最后一個EU的最大距離為100 m(S7 EU) ;600 m(S5 EU)。采用擴(kuò)展方案時應(yīng)遵守以下原則:
任一中央控制器的擴(kuò)展單元(EU)數(shù)量最多不應(yīng)超過21個。- 連接到任一中央控制器的發(fā)送IM不能超過6個,并且最多只有
2個IM可提供5 V電源- 中央控制器器和7 EU的最大距離為100 m。 - 通過C總線的數(shù)據(jù)交換,僅限
中央控器和6個EU(EU1~EU6)之間。 - 電源模板總是安裝在中央控制器和EU的最左邊。 ? ET 200
進(jìn)行遠(yuǎn)程擴(kuò)展;這種方式適用于分布范圍很廣的系統(tǒng)。通過CPU中的–DP接口最多可連接125個總線結(jié)點。中
央控制器和最后一個結(jié)點的最大距離為
23 km
SIMATIC 控制器
SIMATIC 控制器有多種多樣,包括從高性能 PLC 的書本型迷你控制器,到基于 PC 的控制器,無論什么要求,它都能滿足要求。
這些控制器的共同特點是,在最小的空間里壓縮了最大處理能力,能滿足最苛刻的機(jī)械和氣候條件、高速及可擴(kuò)展性等要求。
這種分級的性能特征是 SIMATIC 系列產(chǎn)品的力量所在。
目前,SIMATIC PLC 正在執(zhí)行越來越多的功能,原本需要完全不同技術(shù)。 對您來說,一切都變得更加容易,更加一致,更加經(jīng)濟(jì)。
LOGO! 邏輯模塊提供方便的、用戶友好的解決方案,用于滿足簡單的開環(huán)和閉環(huán)控制任務(wù)。
LOGO! 具有廣泛的通用性,例如:
- 樓宇服務(wù)/電氣安裝(照明、百葉窗、遮篷、門、門禁系統(tǒng)、柵欄、通風(fēng)系統(tǒng),等。)
- 控制柜制造。
- 機(jī)電設(shè)備(泵,小型壓機(jī),壓縮機(jī),傳送帶,升降臺等)
- 暖房,溫室的特殊控制
- 對其他控制器的信號進(jìn)行處理
LOGO! 邏輯模塊可根據(jù)應(yīng)用情況進(jìn)行擴(kuò)展。
LOGO! Modular 可提供多種電壓類型(12VDC, 24VDC, 24VAC, 115/230VDC, 115/230VAC):
- 標(biāo)準(zhǔn)型:
- 純型號,成本經(jīng)過優(yōu)化,不帶按鍵控制面板和顯示屏。
LOGO! 具有以下特性:
- R:繼電器輸出
- C:時鐘/時間切換
- E:以太網(wǎng)接口
- o:無顯示屏
LOGO!使用非常簡單:
- 按鍵控制面板和顯示屏位于一個設(shè)備中。無需其它工具。
- 通過集成式 EEPROM 備份切換程序和設(shè)定值(如定時器),以防電源故障。
LOGO! 節(jié)省空間:
- 例如:LOGO! 230RC:72 x 90 x 55 mm (W x H x D).
- 經(jīng)調(diào)整后,可安裝在配電箱中(尺寸與接地故障斷路器相同)。
LOGO! 提供最大的靈活性和通用性:
- 可擴(kuò)展性:
根據(jù)應(yīng)用情況可連接擴(kuò)展模塊。
LOGO! 具有通信功能:
- 使用可選的通信模塊,可連接到 AS-Interface 和 KNX Konnex 網(wǎng)絡(luò)。
- LOGO!7 和 8 可與其它 LOGO! 單元通信,或與 SIMATIC 控制器或 SIMATIC 面板通信