国产精品久久久久久久久,四季AV一区二区夜夜嗨,日韩精品无码中文字幕电影,www.五月婷婷.com

資訊詳情
6SL32110KB137UA1
發(fā)布者:黃工  發(fā)布時(shí)間:2016-04-10 13:44:22
6SL32110KB137UA1,6SL32110KB137UA1

                           {心中有空間,夢(mèng)想就有可能}

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

聯(lián)   系   人: 黃勇《黃工》   24小時(shí)聯(lián)系手機(jī):  13701633515
直線銷售 電 話: 021-31660605    在 線 商 務(wù) QQ:  77956468 
單位:臺(tái)                                                                                  產(chǎn)品單價(jià):電議

供貨數(shù)量:不限                                                                      最小定量:1

包裝說明:齊全                                                                      產(chǎn)品規(guī)格:全新原裝

WinCC中定時(shí)器使用方法介紹

1、定時(shí)器功能介紹
2、腳本中定時(shí)器介紹
3、使用腳本實(shí)現(xiàn)更多定時(shí)器功能
3.1 整點(diǎn)歸檔
3.2 WinCC 項(xiàng)目激活時(shí)避免腳本初次執(zhí)行及延遲執(zhí)行腳本1 定時(shí)器功能介紹
    WinCC 中定時(shí)器的使用可以使 WinCC按照指定的周期或者時(shí)間點(diǎn)去執(zhí)行任務(wù),比如周期執(zhí)行變量歸檔、在指定的時(shí)間點(diǎn)執(zhí)行全局腳本或條件滿足時(shí)打印報(bào)表。WinCC 已經(jīng)提供了一些簡(jiǎn)單的定時(shí)器,可以滿足大部分定時(shí)功能。但是在有些情況下,WinCC 提供的定時(shí)器不能滿足我們需求,這時(shí)我們就可以通過 WinCC 提供的腳本接口通過編程的方式實(shí)現(xiàn)定時(shí)的功能,因?yàn)槟_本本身既可以直接 調(diào)用 WinCC其他功能,比如報(bào)表打印,也可以通過中間變量來控制其他功能的執(zhí)行,比如通過置位/復(fù)位歸檔控制變量來觸發(fā)變量記錄的執(zhí)行。WinCC 提供了 C 腳本和 VBS 腳 本,本文主要以全局 C 腳本編程為例介紹定時(shí)功能的實(shí)現(xiàn)。
2 腳本中定時(shí)器介紹     既然在全局腳本中可以編程控制其他功能的執(zhí)行,那么首先看看全局腳本的觸發(fā):

1
                         圖1   腳本觸發(fā)器分類 如圖1所示: 腳本觸發(fā)器分為使用定時(shí)器和使用變量, 定時(shí)器又分為周期執(zhí)行和非周期執(zhí)行一次,比如每分鐘執(zhí)行一次腳本屬于周期執(zhí)行,指定2012年10月1日?qǐng)?zhí)行一次屬于非周期執(zhí)行。 使用變量觸發(fā)腳本,即在變量發(fā)生變化時(shí),腳本就執(zhí)行一次, 而變量的采集可以根據(jù)指定周期循環(huán)采集,或者根據(jù)變化采集,根據(jù)變化實(shí)際是1秒 鐘采集變量一次。
3使用腳本實(shí)現(xiàn)更多定時(shí)器功能
   利用腳本自身的定時(shí)器, 可以通過在腳本中編程的方式實(shí)現(xiàn)更多其它定時(shí)功能。

3.1整 點(diǎn)歸檔

    WinCC提供了變量歸檔,變量歸檔分為周期歸檔和非周期歸檔,不管是周期歸檔或非周期的歸檔,都又可以通過一些 變量或腳本返回值來控制歸檔, 比如:整點(diǎn)歸檔。下面的設(shè)置結(jié)合WinCC腳本,實(shí)現(xiàn)了在 整點(diǎn)開始?xì)w檔,歸檔五分種后停止歸檔,即每個(gè)小時(shí)僅歸檔前五分鐘的數(shù)據(jù)。
    軟件環(huán)境:Windows 7 Professional Service Pack1 , WinCC V7.0 SP3
    歸檔名稱:ProcessValueArchive
    歸檔變量:NewTag
    歸檔周期:1 分鐘
    歸檔控制變量  startarchive
    C腳本觸發(fā)周期:10秒
    腳本代碼:
#include "apdefap.h"
intgscAction( void )
{
    #pragma option(mbcs)
    #pragma code ("kernel32.dll"); 
    void GetLocalTime (SYSTEMTIME* lpst); 
    #pragma code(); 
      SYSTEMTIME time;
      int  t1; 
      GetLocalTime(&time); 
      t1=time.wMinute; 
if(t1==00) 
      { 
                  SetTagBit("startarchive",1);  
       } 
     if(t1==05) 
      { 
                  SetTagBit("startarchive",0);    
 } 
return0;
}
歸檔設(shè)置如圖2:

                     圖2   歸檔設(shè)置
    同理,在以上腳本的基礎(chǔ)上做修改,可以實(shí)現(xiàn)在某個(gè)指定的時(shí)間點(diǎn)打印報(bào)表,只要在滿足觸發(fā)條件時(shí)調(diào)用下列函數(shù):    
       RPTJobPrint(" Myprintjob");
      Myprintjob為 事先創(chuàng)建好的打印作業(yè)。 
       腳 本主要部分在于獲取系統(tǒng)當(dāng)前時(shí)間,下 面的腳本實(shí)現(xiàn)了獲取當(dāng)前時(shí)間并分別獲取年、月、日、時(shí)、分、秒、毫秒,星期幾的功能。
 
    Varname1 到 Varname8 為 WinCC 內(nèi)部變量。若在 WinCC畫面上顯示時(shí),由于默認(rèn) I/O 域的 格式為999.99, 要把 Varname1 的顯示格式改為9999。 
  #include "apdefap.h"
intgscAction( void )
{
          #pragma option(mbcs)
 
          #pragma code ("kernel32.dll"); 
             void GetLocalTime (SYSTEMTIME* lpst); 
         #pragma code(); 
         SYSTEMTIME time;
            GetLocalTime(&time); 
             SetTagWord("Varname1",time.wYear);
           SetTagWord("Varname2",time.wMonth);
           SetTagWord("Varname3",time.wDayOfWeek);
           SetTagWord("Varname4",time.wDay);
           SetTagWord("Varname5",time.wHour);
           SetTagWord("Varname6",time.wMinute);
           SetTagWord("Varname7",time.wSecond);
           SetTagWord("Varname8",time.wMilliseconds);
  return 0;
}
    設(shè)置或讀取系統(tǒng)時(shí)間的函數(shù)如下: 
        SetSystemTime
        SetLocalTime
        GetSystemTime
        GetLocalTime 
    系統(tǒng)中本地計(jì)算機(jī)時(shí)間和格林威治時(shí)間是有區(qū)別的。函數(shù)“SetSystemTime / GetSystemTime”用于設(shè)置或讀取格林威治時(shí)間。
   函數(shù)“SetLocalTime / GetLocalTime”用于設(shè)置或讀取本地計(jì)算機(jī)時(shí)間。
  兩種時(shí)間會(huì)因地理的時(shí)區(qū)不同而改變。兩個(gè)函數(shù)使用方法相 同。
  3.2 WinCC 項(xiàng)目激活時(shí)避免腳本初次執(zhí)行及延遲執(zhí)行腳本
    全局腳本在項(xiàng)目激活時(shí),是要執(zhí)行一次的,在有些情況下,需要避免腳本執(zhí)行,就采用在腳本中去判斷。比如 可以創(chuàng)建 WinCC 內(nèi)部布爾型變量 flag,腳本如下:
  #include "apdefap.h"
intgscAction( void )
{
      #pragma option(mbcs)
 
      if ( GetTagBit("flag")==1) 
              SetTagWord("NewTag",1);//根據(jù)自己的需求編寫對(duì)應(yīng)代碼.
     else
              SetTagBit("flag",1);    //Return-Type: BOOL
return0;
}
    除了避免項(xiàng)目運(yùn)行激活時(shí)觸發(fā)腳本執(zhí)行,我們 還可以通過 Sleep() 延遲腳步功能執(zhí)行,比如開機(jī)后五分鐘開始執(zhí)行腳本具體功能,代碼如下:
  #include "apdefap.h"
intgscAction( void )
{
        #pragma option(mbcs)

西門子S7-200PLC的RS485通信口易損壞的原因分析和解決辦法

一、 S7-200PLC內(nèi)部RS485接口電路圖:電路圖見附件
圖中R1、R2是阻值為10歐的普通電阻,其作用是防止RS485信號(hào)D+和D-短路時(shí)產(chǎn)生過電流燒壞芯片,Z1、Z2是鉗制電壓為6V,最大電流為10A的齊納二極管,24V電源和5V電源共地未經(jīng)隔離,當(dāng)D+或D-線上有共模干擾電壓灌入時(shí),由橋式整流電路和Z1、Z2可將共模電壓鉗制在±6.7V,從而保護(hù)RS485芯片SN75176(RS485芯片的允許共模輸入電壓范圍為:-7V~+12V)。該保護(hù)電路能承受共模干擾電壓功率為60W,保護(hù)電路和芯片內(nèi)部沒有防靜電措施。
西門子S7-200PLC內(nèi)部RS485接口電路圖


二、常發(fā)生的故障現(xiàn)象分析:
當(dāng)PLC的RS485口經(jīng)非隔離的PC/PPI電纜與電腦連接、PLC與PLC之間連接或PLC與變頻器、觸摸屏等通信時(shí)時(shí)有通信口損壞現(xiàn)象發(fā)生,較常見的損壞情況如下:
●R1或R2被燒斷,Z1、Z1和SN75176完好。這是由于有較大的瞬態(tài)干擾電流經(jīng)R1或R2、橋式整流、Z1或Z1到地,Z1、Z2能承受最大10A電流的沖擊,而該電流在R1或R2上產(chǎn)生的瞬態(tài)功率為:102×10=1000W,當(dāng)然會(huì)將其燒斷。
●SN75176損壞,R1、R2和Z1、Z2完好。這主要可能是受到靜電沖擊或瞬態(tài)過電壓速度快于Z1、Z2的動(dòng)作速度造成的,靜電無處不在,僅人體模式也會(huì)產(chǎn)生±15kV的靜電。
●Z1或Z2、SN75176損壞,R1和R2完好。這可能是受到高電壓低電流的瞬態(tài)干擾電壓將Z1或Z2和SN75176擊穿,由于電流較小和發(fā)生時(shí)間較短因而R1、R2不至于發(fā)熱燒斷。
由以上分析得知PLC接口損壞的主要原因是由于瞬態(tài)過電壓和靜電造成,產(chǎn)生瞬態(tài)過電壓和靜電的原因很多也較復(fù)雜,如由于PLC內(nèi)部24V電源和5V電源共地,24V電源的輸出端子L+、M為其它設(shè)備混合供電可能導(dǎo)致地電位變化,從而造成共模電壓超出允許范圍。所以EIA-485標(biāo)準(zhǔn)要求將各個(gè)RS485接口的信號(hào)地用一條低阻值導(dǎo)線連接在一起以保證各節(jié)點(diǎn)的地電位相等,消除地線環(huán)流!
當(dāng)帶電插拔未隔離的連接電纜時(shí),由于兩端電位不相等電路中又存在諸多電感、電容之類的器件,插拔瞬間必然產(chǎn)生瞬態(tài)過電壓或過電流。
連接在RS485總線上的其它設(shè)備產(chǎn)生的瞬態(tài)過電壓或過電流同樣會(huì)流入到PLC,總線上連接的設(shè)備站點(diǎn)數(shù)越多,產(chǎn)生瞬態(tài)過電壓的因素也越多。
當(dāng)通信線路較長(zhǎng)或有室外架空線時(shí),雷電必然會(huì)在線路上造成過電壓,其能量往往是巨大的,常有用戶沮喪地說:“聯(lián)網(wǎng)的幾十臺(tái)PLC全部遭打壞了!”。
三、 解決辦法:
1、從PLC內(nèi)部考慮:
●采用隔離的DC/DC將24V電源和5V電源隔離,分析了三菱、歐姆龍、施耐德PLC以及西門子的PROFIBUS接口均是如此。
●選用帶靜電保護(hù)、過熱保護(hù)、輸入失效保護(hù)等保護(hù)措施完善的高擋次RS485芯片,如:SN65HVD1176D、MAX3468ESA等,這些芯片價(jià)格一般在十幾元至幾十元,而SN75176的價(jià)格僅為1.5元。
●采用響應(yīng)速度更快、承受瞬態(tài)功率更大的新型保護(hù)器件TVS或BL浪涌吸收器,如P6KE6.8CA的鉗制電壓為6.8V,承受瞬態(tài)功率為500W,BL器件則可抗擊4000A以上大電流沖擊。
●R1和R2采用正溫度系數(shù)的自恢復(fù)保險(xiǎn)PTC,如JK60-010,正常情況下的電阻值為5歐,并不影響正常通信,當(dāng)受到浪涌沖擊時(shí),大電流流過PTC和保護(hù)器件TVS(或BL),PTC的電阻值將驟然增大,使浪涌電流迅速減小。
2、從PLC外部考慮:
● 使用隔離的PC/PPI電纜,盡量不用廉價(jià)的非隔離電纜(特別是在工業(yè)現(xiàn)場(chǎng))。西門子公司早期出產(chǎn)的PC/PPI電纜(6ES7 901-3BF00-0XA0)是不隔離的,現(xiàn)在也改成隔離的電纜了!
● PLC的RS485口聯(lián)網(wǎng)時(shí)采用隔離的總線連接器.
● 與PLC聯(lián)網(wǎng)的第三方設(shè)備,如變頻器、觸摸屏等的RS485口均使用RS485隔離器BH-485G進(jìn)行隔離,這樣各RS485節(jié)點(diǎn)之間就無“電”的聯(lián)系,也無地線環(huán)流產(chǎn)生,即使某個(gè)節(jié)點(diǎn)損壞也不會(huì)連帶其它節(jié)點(diǎn)損壞。
● RS485通信線采用PROFIBUS總線專用屏蔽電纜,保證屏蔽層接到每臺(tái)設(shè)備的外殼并最后接大地。
● 對(duì)于有架空線的系統(tǒng),總線上最好設(shè)置專門的防雷擊設(shè)施。 

找到了解決S7-200通訊口損壞的辦法了

在我們單位眾多的S7-200PLC中,不時(shí)有通訊口損壞,致使不能連接PC或不能進(jìn)行通訊,在對(duì)PLC解體時(shí)發(fā)現(xiàn),在PLC通訊口出有一芯片--75176,這就是通訊接口芯片,在芯片周圍有5個(gè)FB,標(biāo)識(shí)FB1~FB5,這其實(shí)就是5個(gè)保險(xiǎn),在通訊連不上時(shí),一般就是這5個(gè)保險(xiǎn)中的某個(gè)燒毀了,可用同等型號(hào)的保險(xiǎn)代替,也可用導(dǎo)線直接短路。一般就能解決問題。不過更換時(shí)要注意,由于元件時(shí)貼片的,十分小,空間也小,所以焊接時(shí)注意不要短路。

西門子PLC網(wǎng)絡(luò)讀寫指令向?qū)褂弥改?/h1>

PPI協(xié)議是專門為S7-200開發(fā)的通信協(xié)議。S7-200 CPU的通信口(Port 0、Port 1)均支持PPI通信協(xié)議。S7-200 CPU的PPI網(wǎng)絡(luò)通信是建立在RS-485網(wǎng)絡(luò)的硬件基礎(chǔ)上,因此其連接屬性和需要的網(wǎng)絡(luò)硬件設(shè)備與其他RS-485網(wǎng)絡(luò)一致。

1  網(wǎng)絡(luò)讀寫(NETR/NETW)指令介紹

網(wǎng)絡(luò)讀寫指令一般用于S7-200 CPU之間的PPI網(wǎng)絡(luò)通信。PPI通信前要保證PPI網(wǎng)絡(luò)上的所有站點(diǎn)都應(yīng)當(dāng)有各自不同的網(wǎng)絡(luò)地址,否則通信不會(huì)正常進(jìn)行。另外,網(wǎng)絡(luò)讀寫指令進(jìn)行編程和應(yīng)用時(shí)要注意以下幾點(diǎn):
1)    在程序中可以使用任意條網(wǎng)絡(luò)讀寫指令,但是在同一時(shí)刻,最多只能有8條網(wǎng)絡(luò)讀寫指令被激活;
2)    每條網(wǎng)絡(luò)讀寫指令可以從遠(yuǎn)程站點(diǎn)讀取/寫入最多16個(gè)字節(jié)的信息;
3)    使用NETR/NETW指令向?qū)Э梢跃庉嬜疃?4條網(wǎng)絡(luò)讀寫指令,其核心是使用順序控制指令,這樣在任一時(shí)刻只有一條NETR/NETW指令有效;
4)    每個(gè)CPU的端口只能配置一個(gè)網(wǎng)絡(luò)讀寫指令向?qū)А?/span>

2  網(wǎng)絡(luò)讀寫指令向?qū)ЫM態(tài)

2.1 硬件連接

       下面通過一個(gè)實(shí)例(兩臺(tái)S7-200 PLC之間的通信)來介紹如何使用網(wǎng)絡(luò)讀寫指令向?qū)?。首先,兩個(gè)S7-200之間的硬件連接需要一根標(biāo)準(zhǔn)DP電纜加兩個(gè)DP總線插頭。兩臺(tái)S7-200的RS485通信端口連接方式,可參考以下圖片中的連接方式(如果PLC有兩個(gè)通信端口,則任意端口都可進(jìn)行配置,本例中兩個(gè)PLC均以Port 0口做PPI通信使用),如圖1所示。

 

圖1   兩臺(tái)PLC的網(wǎng)絡(luò)連接

2.2 NETR/NETW向?qū)ЫM態(tài)過程

2.2.1設(shè)定通信站地址

       首先,用PC/PPI編程電纜將兩臺(tái)PLC的網(wǎng)絡(luò)站地址分別設(shè)置為2和3,波特率都為9.6Kbps。這時(shí),將編程電纜連接到任一個(gè)CPU帶可編程插口的DP插頭上,查找兩臺(tái)PLC的站地址,如圖2所示。

  
圖2   設(shè)定兩臺(tái)CPU的網(wǎng)絡(luò)地址

       在本例中,選定通信地址為3的PLC為網(wǎng)絡(luò)主站,并對(duì)其進(jìn)行向?qū)渲谩_x定要做為通信主站的CPU地址,點(diǎn)擊確認(rèn)后即可進(jìn)入該CPU的編程界面。另外,網(wǎng)絡(luò)讀寫指令向?qū)?huì)自動(dòng)將CPU設(shè)置成主站模式,不必另行編程設(shè)置,只需為主站編寫通信程序,從站直接使用通信緩沖區(qū)中的數(shù)據(jù),或?qū)?shù)據(jù)整理到通信區(qū)即可。

2.2.2 向?qū)渲貌襟E

       進(jìn)入到編程畫面后,點(diǎn)擊工具菜單欄,找到指令向?qū)нx項(xiàng),準(zhǔn)備進(jìn)入網(wǎng)絡(luò)讀/寫功能的向?qū)渲媚J?,如圖3所示。 

 
圖3 進(jìn)入指令向?qū)Ь幊探缑?/span>

打開指令向?qū)Ы缑?,選擇NETR/NETW指令功能,如圖4所示。 

HMI
6AV6 640-0BA11-0AX0 OP 73 micro s7-200系列用
6AV6 640-0CA11-0AX0 TP177 micro 觸摸式 s7-200系列用
6AV6 640-0DA11-0AX0 K-TP 178 micro s7-200系列用
6AV6 641-0AA11-0AX0 OP 73  單色  3英寸  
6AV6 641-0BA11-0AX0 OP 77A  單色 4.5英寸  
6AV6 641-0CA01-0AX0 OP 77B  單色 4.5英寸  
6AV6 642-0AA11-0AX0 TP 177A  單色 5.7英寸  
6AV6 642-0BC01-1AX1 TP 177B DP 單色 5.7英寸
6AV6 642-0BA01-1AX0 TP 177B PN/DP 彩色 5.7英寸
6AV6 642-0DC01-1AX0 OP 177B DP 單色 5.7英寸
6AV6 642-0DA01-1AX0 OP 177B PN/DP 彩色 5.7英寸
6AV6 643-0BA01-1AX0 OP 277-6操作員面板,5.7寸彩色中文顯示
6AV6 643-0AA01-1AX0 TP277-6 觸摸式面板,5.7寸彩色中文顯示
6AV6 643-0CB01-1AX1 MP277-8 觸摸式面板,8寸64K色中文
6AV6 643-0DB01-1AX1 MP277-8 按鍵式面板,8寸64K色中文顯示
6AV6 643-0CD01-1AX1 MP277-10 觸摸式面板,10寸64K色中文
6AV6 643-0DD01-1AX1 MP277-10 按鍵式面板,10寸64K色中文顯示
6AV6671-1CB00-0AX0  MMC 存儲(chǔ)卡 128 MB 用于 OP77B, OP/TP 177B, MOBILE PANEL 177 
6AV6671-1CB00-0AX1  MMC 存儲(chǔ)卡 64 MB 用于 OP77B, OP/TP 177B, MOBILE PANEL 177 
6AV6644-0AA01-2AX0 SIMATIC  MP 377 12" TOUCH      
6AV6644-0AB01-2AX0 SIMATIC  MP 377 15" TOUCH      
6AV6644-0AC01-2AX0 SIMATIC  MP 377 19" TOUCH
6AV6644-0BA01-2AX0 SIMATIC  MP 377 12" KEY
6AV6647-0AA11-3AX0  SIMATIC KTP400 Basic mono PN 3.8" mono STN 顯示屏,以太網(wǎng)接口
6AV6647-0AB11-3AX0  SIMATIC KTP600 Basic mono PN 5.7" mono STN 顯示屏,以太網(wǎng)接口,
6AV6647-0AC11-3AX0  SIMATIC KTP600 Basic color DP 5,7" TFT 顯示屏,256 色 MPI/PROFIBUS DP 接口
6AV6647-0AD11-3AX0  SIMATIC KTP600 Basic color PN 5,7" TFT 顯示屏,256 色以太網(wǎng)接口
6AV6647-0AE11-3AX0  SIMATIC KTP1000 基本色 DP 10.4" TFT 顯示器,256 色 MPI/PROFIBUS DP 接口
6AV6647-0AF11-3AX0  SIMATIC KTP1000 基本色 PN 10,4" TFT 顯示器,256 色,以太網(wǎng)接口,
6AV6647-0AG11-3AX0  SIMATIC TP1500 基本色 PN 15.0" TFT 顯示器,256 色,以太網(wǎng)接口,
6AV6647-0AH11-3AX0  SIMATIC HMI kp300基本單PN,基本面板,按鍵操作,3寸”
6AV2124-0GC01-0AX0  SIMATIC HMI TP700 7.0 英寸寬屏 TFT 顯示屏,分辨率 800 x 480,1600 萬色 
6AV2124-0JC01-0AX0  SIMATIC HMI TP900,?9.0 英寸寬屏 TFT 顯示屏,分辨率 800 x 480,1599 萬色
6AV2124-0MC01-0AX0  SIMATIC HMI TP1200 ?12.1 英寸寬屏 TFT 顯示屏,分辨率 1280 x 800,1600 萬色 
6AV2124-0QC02-0AX0  SIMATIC HMI TP1500 ?15.4 英寸寬屏 TFT 顯示屏,分辨率 1280 x 800,1600 萬色
?2 個(gè)PROFINET 接口(2 個(gè)端口帶有集成開關(guān) + 支持千兆位的附加接口)和 1 個(gè) PROFIBUS 接口
6AV2124-0UC02-0AX0  SIMATIC HMI TP1900 ?18.5 英寸寬屏 TFT 顯示屏,分辨率 1366 x 768,1600 萬色 
6AV2124-0XC02-0AX0  SIMATIC HMI TP2200,?21.5 英寸寬屏 TFT 顯示屏,分辨率 1920 x 1080,1600 萬色 
6AV2124-1DC01-0AX0  SIMATIC HMI KP400 ?4.3 英寸寬屏 TFT 顯示屏,分辨率 480 x 272,1600 萬色 
6AV2124-1GC01-0AX0 SIMATIC HMI KP700 ?7.0 英寸寬屏 TFT 顯示屏,分辨率 800 x 480,1600 萬色 
6AV2124-1JC01-0AX0  SIMATIC HMI KP900 ?9.0 英寸寬屏 TFT 顯示屏,分辨率 800 x 480,1600 萬色 
6AV2124-1MC01-0AX0  SIMATIC HMI KP1200 ,?12.1 英寸寬屏 TFT 顯示屏,分辨率 1280 x 800,1600 萬色 
6AV2124-1QC02-0AX0  SIMATIC HMI KP1500 ?15.4 英寸寬屏 TFT 顯示屏,分辨率 1280 x 800,1600 萬色 
6AV2124-2DC01-0AX0  SIMATIC HMI KTP400 ?4.3 英寸寬屏 TFT 顯示屏,分辨率 480 x 272,1600 萬色 
6AV6645-0AA01-0AX0  SIMATIC 移動(dòng)式面板177 DP,帶集成啟動(dòng)按鈕,使用WINCC FLEXIBLE緊湊型2005或以上進(jìn)行組態(tài) 
6AV6645-0AB01-0AX0  SIMATIC 移動(dòng)式面板177 DP,帶集成啟動(dòng)按鈕和急停按鈕,使用WINCC FLEXIBLE緊湊型2005或以上進(jìn)行組態(tài)
6AV6645-0AC01-0AX0  SIMATIC 移動(dòng)式面板177 DP,帶集成啟動(dòng)按鈕和急停按鈕、手輪、鑰匙開關(guān)和亮光按鈕, 
6AV6645-0BA01-0AX0  SIMATIC 移動(dòng)式面板177 PN,帶集成啟動(dòng)按鈕,使用WINCC FLEXIBLE緊湊型2005或以上進(jìn)行組態(tài) 
6AV6645-0BB01-0AX0  SIMATIC 移動(dòng)式面板177 PN,帶集成啟動(dòng)按鈕和急停按鈕,使用WINCC FLEXIBLE緊湊型2005或以上進(jìn)行組態(tài) 
6AV6645-0BC01-0AX0  SIMATIC 移動(dòng)式面板177 PN,帶集成啟動(dòng)按鈕和急停按鈕、手輪、鑰匙開關(guān)和亮光按鈕, 
6AV6645-0BE02-0AX0  SIMATIC 移動(dòng)式面板 277 10" W,集成使能按鈕、停止按鈕和觸控按鈕,
6AV6645-0CA01-0AX0  SIMATIC 移動(dòng)式面板277,帶集成啟動(dòng)按鈕,
6AV6645-0CB01-0AX0  SIMATIC 移動(dòng)式面板277,帶集成啟動(dòng)按鈕和急停按鈕,
6AV6645-0CC01-0AX0  SIMATIC 移動(dòng)式面板277,帶集成啟動(dòng)按鈕和急停按鈕、手輪、鑰匙開關(guān)和兩個(gè)亮光按鈕 

西門子STL間接尋址常問問題集

1.1如何獲得指針或者間接尋址有關(guān)的信息?
指針的類型包括16位指針、32位指針、Pointer(6Byte)和Any(10Byte)。16位指針用于定時(shí)器、計(jì)數(shù)器、程序塊的尋址;32位指針用于I/Q/M/L/數(shù)據(jù)塊等存儲(chǔ)器中位、字節(jié)、字以及雙字的尋址,其中第0~2位表示位地址(0~7)、第3~18位為字節(jié)地址,其余位未定義;Pointer和Any一般應(yīng)用在復(fù)雜數(shù)據(jù)類型(比如Date_and_Time /Array/String等)在FB、FC之間的傳遞。而Any可以看做是對(duì)Pointer的延伸,因?yàn)橛?0Byte組成的Any中Byte4~Byte9就是一個(gè)Pointer。
了解指針的格式十分重要,為正確使用指針,應(yīng)閱讀如下內(nèi)容:
1、 "SIMATIC Programming with STEP 7 V5.5" 05/2010 第27.3.4章 參數(shù)類型
2、文檔:1008用于S7-300 和S7-400 的語句表(STL)編程
3、文檔:F0215,S7-300和S7-400尋址 1.2為什么語句 LAR1 P##PointerInput 在一個(gè)函數(shù)(FC)中是無效的,然而,同樣的語句在一個(gè)功能塊(FB)中是有效的?
在FC被調(diào)用時(shí),復(fù)雜數(shù)據(jù)類型例如指針是被復(fù)制到調(diào)用者的臨時(shí)變量區(qū)中,在FC內(nèi)部對(duì)此V區(qū)地址直接取址放入到地址寄存器AR1或AR2是不被編譯器規(guī)則接受的(導(dǎo)致MC7寄存器信息過長(zhǎng)),也就是說在FC內(nèi)部通過P#進(jìn)行地址寄存器取址僅能支持Temp臨時(shí)變量。因此如果需要在FC中操作指針等復(fù)雜輸入輸出變量地址需要使用累加器進(jìn)行中轉(zhuǎn)。
考慮到程序的一致性、遵守編譯器規(guī)則和STL手冊(cè)中LAR1指令說明,建議用戶使用如下指令操作:
L P##PointerInput
LAR1 1.3 STEP 7 中哪些操作會(huì)覆蓋DB/DI寄存器或者地址寄存器AR1/AR2的內(nèi)容?
下面說明了可能引起DB/DI寄存器或者地址寄存器AR1/AR2內(nèi)容改變的一些操作:


  • DB寄存器和AR1受到影響的操作
    1. 使用完整的DB路徑(如L DB20.Val)或者調(diào)用FC/FB時(shí)使用DB塊完整地址作為其參數(shù),則DB寄存器內(nèi)容被覆蓋。
    例如在OB1中調(diào)用FC1后,DB寄存器變成20。
    OPN DB1
    Call FC1
    Input(bit):DB20.DBX0.2
    因此在編程的時(shí)候,OPN 指令打開數(shù)據(jù)塊,通過DBX x.y的方式訪問其中內(nèi)容, 但是如果在打開數(shù)據(jù)塊后DB寄存器的內(nèi)容被修改了,則DBX x.y的方式訪問變量則 會(huì)訪問到錯(cuò)誤的地址??梢酝ㄟ^使用符號(hào)尋址的方式或者使用完整路徑編程避免,當(dāng) 然重新使用 OPN指令也是可以的。
    2. 調(diào)用FC時(shí)使用string, array, structure ,UDT作為其形參或者調(diào)用FB時(shí)使用string, array, structure 或者UDT作為其in out形參,在FC/FB程序中訪問這些地址則AR1寄存器內(nèi)容被覆蓋,因此當(dāng)使用AR1進(jìn)行間接尋址時(shí)需要注意AR1內(nèi)容的正確性。
  • AR2地址寄存器和DI寄存器在FB中作為參數(shù)和靜態(tài)變量的基址尋址使用。AR2和DI如果被修改,會(huì)影響FB的參數(shù)訪問,如果希望在FB中使用DI寄存器或者地址寄存器AR2,必須預(yù)先保存它們中的內(nèi)容,并在使用后恢復(fù)它們,例如:
    TAR2 #AR2_SAVE; //AR2寄存器狀態(tài)保存到#AR2_SAVE
    L DINO;
    T #DB2_SAVE; //DI寄存器狀態(tài)保存到#DB2_SAVE
User Program
LAR2 #AR2_SAVE; //AR2寄存器恢復(fù)到使用前狀態(tài)
OPN DI [#DB2_SAVE]; //DI寄存器恢復(fù)到使用前狀態(tài)
1.4 如何得到多重背景FB中的變量在背景DB里的絕對(duì)偏移量呢?
可以用下面的方法處理:
TAR2 (得到多重背景FB在背景DB里的偏移地址)
AD DW#16#00FFFFFF (屏蔽掉存儲(chǔ)區(qū)ID,可參考32位指針格式)
L P##Variable (得到變量在多重背景FB里的地址)
+D (多重背景FB的偏移地址與變量在多重背景FB里地址相加,即得到實(shí)際絕對(duì)偏移量)
LAR1
上述語句就是就得到了變量在背景DB中的絕對(duì)偏移量,從而供后續(xù)程序處理。 1.5如何在程序中使用ANY 型指針? 簡(jiǎn)要說明如下:
L P##Input //指向存儲(chǔ)地址指針I(yè)nput首地址
//這個(gè)參數(shù)是一個(gè)Any類型,P##Input指向參數(shù)Input的值所在地址,這就是指針的指針
LAR1 //裝載到地址寄存器AR1中。
L W [AR1,P#4.0] //打開DB塊
// 由Any類型結(jié)構(gòu)知道Any類型的Byte4、Byte5存放的數(shù)據(jù)塊號(hào)
T #BLOCK_NO
OPN DB [#BLOCK_NO] //如果是DB塊,打開指定的DB塊。
L W [AR1,P#2.0] //判斷ANY指針中數(shù)據(jù)長(zhǎng)度
// Any類型的Byte2、Byte3是重復(fù)系數(shù),如P#DB1.DBX0.0 Byte 8后面的Byte 8
_001:T #DATA_LEN //通常此處做loop循環(huán)??!
L D [AR1,P#6.0] //找出需要計(jì)算數(shù)據(jù)區(qū)的開始地址
// Any類型Byte6~Byte9是32位區(qū)域地址
理解Pointer、Any的類型的數(shù)據(jù)結(jié)構(gòu),對(duì)于正確使用指針有很大幫助。
為正確使用指針,應(yīng)仔細(xì)閱讀如下內(nèi)容:
"SIMATIC Programming with STEP 7 V5.5" 05/2010 第27.3.4章 參數(shù)類型 如下的程序?qū)崿F(xiàn)了SFC20的部分功能,可以作為Any使用的參考。
FUNCTION FC 1 : VOID
TITLE =
VERSION : 0.1
VAR_INPUT
SRCBLK : ANY ;
END_VAR
VAR_OUTPUT
RETVAL : INT ;
DSTBLK : ANY ;
END_VAR
VAR_TEMP
LOOP : INT ;
BLOCK_NO_DB : WORD ;
BLOCK_NO_DI : WORD ;
SRC_ADD : DWORD ;
DST_ADD : DWORD ;
END_VAR
BEGIN
NETWORK
TITLE =
L P##SRCBLK; //讀取輸入any的首地址
LAR1 ; //裝載到ar1
L P##DSTBLK; //讀取輸出any的首地址
LAR2 ; //裝載到ar2
L W [AR1,P#4.0]; //打開DB塊
T #BLOCK_NO_DB;
L W [AR2,P#4.0]; //打開DI塊
T #BLOCK_NO_DI;
OPN DB [#BLOCK_NO_DB]; //打開DB塊
OPN DI [#BLOCK_NO_DI]; //打開DI塊
L D [AR1,P#6.0];
T #SRC_ADD; //讀取地址
L D [AR2,P#6.0];
T #DST_ADD; //讀取地址 L W [AR1,P#2.0]; //讀取循環(huán)次數(shù)
_001: T #LOOP;
L DBB [#SRC_ADD];
T DIB [#DST_ADD]; //賦值
//地址偏移1個(gè)字節(jié)
L P#1.0;
L #SRC_ADD;
+D ;
T #SRC_ADD;
L P#1.0;
L #DST_ADD;
+D ;
T #DST_ADD;
L #LOOP; //循環(huán)
LOOP _001;
END_FUNCTION 1.6 當(dāng)FC 或FB的輸入?yún)?shù)類型為:BLOCK_DB, TIMER或者 COUNTER,如何確定其編號(hào)?
例1 :FB 塊
FB1 變量聲明中定義了“ Timer” 類型的變量“ Time_1” ,在 FB2 中調(diào)用 FB1,將定時(shí)器“T5”傳遞給變量“ Time_1”。如圖 01 所示程序代碼中數(shù)值 5 表示“T5”。


圖 01 FB中確定定時(shí)器編號(hào) 在使用多重實(shí)例時(shí),需要在圖 01 所示程序中增加以下代碼:
TAR2 //多重實(shí)例偏移地址
LAR1 P##Time_1
+AR1 //多重實(shí)例偏移地址與當(dāng)前地址相加
L W[AR1,P#0.0]
T MW0
例 2 FC
FC1 變量聲明中定義了“ Timer” 類型的變量“ Time_1” ,在 FC2 中調(diào)用 FC1,將定時(shí)器“T8”傳遞給變量“ Time_1”。如圖 02 所示程序代碼中數(shù)值 8 表示“T8”。


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