粗大浓稠硕大噗嗤噗嗤h,精品人妻码一区二区三区,国产av无码专区亚洲精品,日韩a片无码毛片免费看小说

PLC企業(yè)資訊
    6SL32110KB125UA1
    發(fā)布者:黃工  發(fā)布時間:2016-04-09 03:01:19
    6SL32110KB125UA1,6SL32110KB125UA1

                                       {西門子與客戶攜手,讓關(guān)鍵所在,逐一實現(xiàn)}

    德國制造: 現(xiàn)貨      聯(lián)   系   人: 黃勇《黃工》   24小時聯(lián)系手機:  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ā)貨并通知客戶跟蹤運單 

    西門子S7200PLC如何每進(jìn)入定時中斷子程序寄存器或計數(shù)器C0自動加

    1 。 在MAIN 主程序中調(diào)用定時中斷子程序的下面,并聯(lián)寫入上升

     

    沿,使寄存器或計數(shù)器C0 加1  。例如:

    2 。 M10.0
    ----------|  |-----------------------------------------( 1 )----
              M10.0           
    ----------|  |----------------|  P |-------------------( 2 )-----
      
      (1) 表示調(diào)用定時中斷子程序。
     ( 2) 表示寄存器或計數(shù)器C0加1

    S7-400自動化系統(tǒng)采用模塊化設(shè)計。它所具有的模板的擴展和配置功
    能使其能夠按照每個不同的需求靈活組合。
    一個系統(tǒng)包括:
     ? 電源模板; 
       將SIMATIC S7-400連接到120/230 V AC或24 V DC電源上。
     ? 中央處理單元(CPU)
       有多種CPU可供用戶選擇,有些帶有內(nèi)置的PROFIBUS-DP接口,
       用于各種性能范圍。一個中央控制器可包括多個CPU,以加強性能。
     ? 各種信號模板(SM)用于數(shù)字量輸入和輸出(DI/DO)以及模擬量的輸入和輸出(AI/A0)
     ? 通訊模板(CP)用于總線連接和點到點的連接。
     ? 功能模板(FM):專門用于計數(shù)、定位、凸輪控制等任務(wù)。
    簡單的設(shè)計系統(tǒng)使S7-400用途廣泛、靈活、適用性強:
      ? 模板安裝非常簡便
      ? 背板總線集成在機架內(nèi)
      ? 方便、機械碼式的模板更換
      ? 經(jīng)過現(xiàn)場考驗的連接系統(tǒng)
      ? TOP連接用螺釘或彈簧端子的1到3線系統(tǒng)的預(yù)裝配接線
      ? 規(guī)定的安裝深度
    所有端子和接線器都放置在模板凹槽內(nèi)并有蓋板保護(hù)
      ? 沒有槽位規(guī)則
    如果用戶需要比中央控制器更多的功能,S7-400還可以擴展:
     ? 最多21個擴展單元(EU)21個擴展單元(EU)都可以連接到中央控制器(CC)。
     ? 通過接口模板<IM)連接:中央控制器CC和擴展單元EU通過發(fā)送IM和接收IM連接。
       中央控制器(CC)可插入最多6個發(fā)送IM,每個EU可容納1個接收IM。每個發(fā)送IM有2個接口,
       每個接口都能連接一條擴展線路。
     ? 集中式擴展:這種擴展方式適用于小型配置或控制柜直接在機器上的場合。每個發(fā)送IM
       接口可支持4個EU,如有必要,還可同時提供5V電源。中央控制器和最后一個EU的最大距離是.5 
       m(帶5 V電源);3 m(不帶5 V電源)。 ? 用EU進(jìn)行分布式擴展:  這種方式適用于分布范圍廣,
       并在一個地方有幾個
       EU的場合。發(fā)送IM的每個接口最多可支持4個EU。可以使用S7-400 EU,或SIMATIC S5 EU。
    中央控制器和最后一個EU的最大距離為100 m(S7 EU) ;600 m(S5 EU)。采用擴展方案時應(yīng)遵守以下原則: 
     任一中央控制器的擴展單元(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)程擴展;這種方式適用于分布范圍很廣的系統(tǒng)。通過CPU中的–DP接口最多可連接125個總線結(jié)點。中
     央控制器和最后一個結(jié)點的最大距離為
     23 km


    怎樣學(xué)好PLC編程

    看到很多網(wǎng)友問學(xué)習(xí)PLC的方法, 現(xiàn)將我個人學(xué)習(xí)PLC編程的心得總結(jié)如下,大家有更好的方法請補充:
    1.有一定的電工基礎(chǔ)-----掌握傳感器、接近開關(guān)、編馬器、氣動元件等常用器件的使用及繼電器控制原理。
    2.再學(xué)數(shù)制及數(shù)制轉(zhuǎn)換-----掌握二進(jìn)制、八進(jìn)制、十六進(jìn)制、BCD碼、ASCI碼的概念。
    3.選擇你所在地區(qū)流型的PLC品牌做為學(xué)習(xí)的機種.---------學(xué)會后可以更好的與實際工作對接。
    4.買臺手提電腦(配制不低于CPU最好是雙核或以上 ,1G內(nèi)存,硬盤80G,帶串口)----必備學(xué)習(xí)及外出干活的工具。
    5. 學(xué)會電腦的基本操作,如開機關(guān)機、文件保存以及WORD、EXCEL辦公軟件的基本應(yīng)用(電腦使用者必會);常用軟件的安裝與卸載(如編程軟件的安裝和卸載);打字(用于程序起名及加注釋)。
    6.尋找PLC編程軟件及仿真軟件、教學(xué)軟件(當(dāng)然還要學(xué)會使用它們)。-----必備學(xué)習(xí)用具。
    7. 買相關(guān)書及視頻教材(電工論壇有歐姆龍,西門子,松下PLC視頻教程直播)。-----學(xué)習(xí)資料。
    8. 找齊該PLC編程手冊、使用手冊、使用案例,可從網(wǎng)上收集或參加產(chǎn)品推廣會獲得。----工作中肯定會用到的資料.
    9. 以上準(zhǔn)備好后,您可以自學(xué)PLC了,一般來說PLC梯形圖的基本指令好學(xué),其邏輯關(guān)系與繼電器控制原理圖相通。但功能指令就難很多了。
    10.最好是到有實力口碑好的學(xué)校培訓(xùn).-----比起自學(xué)可縮短學(xué)習(xí)時間,學(xué)得更系統(tǒng),還可多交恩師、學(xué)友以利于今后發(fā)展。
    11. 用一切辦法多結(jié)識周圍的同行、PLC廠家、代理商,以便于得到他們的幫助及有用的信息。
    12. 堅持學(xué)習(xí),多與同行交流,多動手實踐.-----編程是理論與技能高度結(jié)合的,應(yīng)多看書多實踐才能提高編程技術(shù)。
    13. 當(dāng)外出包工程時,還要準(zhǔn)備該類型PLC程序解密軟件------因為有時你會忘記自己程序中已加的密碼,還有時是別人加密的程序,客戶要你J將它再優(yōu)化、增加新功能、修改參數(shù)、將原來定時停機的程序刪除。這也是很多人找解碼軟件的原因。

    運用VC#編程通過OPC方式實現(xiàn)PC機與西門子PLC通訊

    1、 配置OPC服務(wù)器
    對于服務(wù)器的配置與同步通訊的配置一樣,這里不需再講解,若有不清楚的,可以參閱之前發(fā)布的<運用VC#編程通過OPC方式實現(xiàn)PC機與西門子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;
    }

    版權(quán)聲明PLC信息網(wǎng)轉(zhuǎn)載作品均注明出處,本網(wǎng)未注明出處和轉(zhuǎn)載的,是出于傳遞更多信息之目的,并不意味 著贊同其觀點或證實其內(nèi)容的真實性。如轉(zhuǎn)載作品侵犯作者署名權(quán),或有其他諸如版權(quán)、肖像權(quán)、知識產(chǎn)權(quán)等方面的傷害,并非本網(wǎng)故意為之,在接到相關(guān)權(quán)利人通知后將立即加以更正。聯(lián)系電話:0571-87774297。
最新資訊