L W#16#87 //為“V”區(qū)域載入碼
T LB[AR1,P#6.0] //傳送到ANY變量
CALL FCxy
source1: = #target //傳送自創(chuàng)建的ANY指針
source2: = P#L 0.0 BYTE 8 //傳送完全L數(shù)據(jù)區(qū)
絕對尋址與通過ANY指針尋址的區(qū)別:
下圖顯示了絕對尋址與通過自創(chuàng)建ANY指針尋址間的區(qū)別。在這種情況下“87”碼不傳送,因此ANY指針指向其本地區(qū)域。
146:怎樣在DB內(nèi)進行間接尋址?
請參照:
在DB內(nèi)進行間接尋址例子
147:下面是一個在STEP7軟件中實現(xiàn)簡單指針尋址的例子程序,您可以參考它的結(jié)構(gòu)實現(xiàn)您的指針尋址功能?
siemens指針尋址例子_cpu315
148:絕對地址和符號尋址的定義和區(qū)別是什么?
在STEP 7程序中要用到I/O信號、位寄存器、計數(shù)器、定時器、數(shù)據(jù)塊及功能塊。在程序中可以采用直接地址,或者更便于讀程序的符號尋址,例如Motor_A_On,或采用你的公司或行業(yè)常用的代碼。這樣在你的用戶程序中就可以通過符號來尋址。
絕對地址:絕對地址由地址標(biāo)識符和存儲器的位置組成,例如Q1.0,I1.1,M2.0, FB21等。
符號地址:如果為絕對地址指定一個符號名,程序會更便于閱讀和查錯。
STEP 7 可以自動將符號名翻譯成所需的絕對地址。如果要用符號名存取ARRAY、STRUCT、數(shù)據(jù)塊、局部數(shù)據(jù)、邏輯塊、以及用戶自定義數(shù)據(jù)類型,必須首先為絕對地址指定一個符號名。
例如,可以為Q0.0 指定一個符號名MOTOR_ON,然后在程序中將MOTOR_ON作為一個地址使用。使用符號地址更容易將您的過程控制項目中的元件與程序中的元件相對應(yīng)。
注意:在符號名中不允許使用兩個連續(xù)的下劃線,例如MOTOR__ON。
編程支持:LAD、FBD、STL中地址、參數(shù)、塊名可用絕對地址或符號表示。
用菜單命令View > Display > Symbolic Representation,可以切換絕對地址和符號地址
為了使用符號地址編程更加容易,可以同時顯示絕對地址和符號名。使用菜單命令 View > Display > Symbol Information來激活。這就意味著STL語句的注釋包含了更多的信息。不能在該界面下進行修改,只能在符號表(symbol table)或變量聲明表(variable declaration table)中進行修改。
149:S7-300/400系統(tǒng)存儲區(qū)域共有多少種?
S7 CPU的系統(tǒng)存儲區(qū)域分為下表中列出的地址區(qū)域。在程序中可以根據(jù)相應(yīng)的地址直接讀取數(shù)據(jù)。
150:如何把一個DATE_AND_TIME變量轉(zhuǎn)換為bbbbbb變量?
為了以日期/時間字符串(bbbbbb)形式顯示DATE_AND_TIME變量,必須DATE_AND_TIME 變量的專用字節(jié)轉(zhuǎn)換為相應(yīng)的CHAR字符。
讀取DATE_AND_TIME 變量的專用字節(jié)并從這兩位數(shù)所在ASCII碼中創(chuàng)建專用位。將確定了的CHAR字符存儲在字符串的期望位置。
示例:
L 字節(jié)年
SLD 12
SRW 4
SRD 8
L W#16#3030
+ I
T 數(shù)字字符年
也可以用相反順序?qū)⒁粋€bbbbbb格式的日期/時間字符串轉(zhuǎn)換為一個DATE_AND_TIME變量
|
西門子SIMATIC S7-300/400 問答大匯總
1. 怎么使用 MPI/DP-RS232 問:我要將 CPU314 與電腦連接通信應(yīng)該怎么辦?是否用 MPI/DP-RS232 連接器,要怎么用啊?
答:第一步,將適配器(PC Adapter)與 RS232 電纜相連。適配器的 MPI/DP 口插入 CPU 的編程口,RS232 電纜與 PC 的串口連。
[NextPage] 第二步,進入"開始"->"設(shè)置"->"控制面板"->"SET PG/PC Interface"。點選 “ Access Point of the Application ” =S7ONLINE ( STEP7 ),“ Interface bbbbbeter Assignment”=PC Adapter (MPI)。 第三步,點“Properties”進入屬性設(shè)置,MPI 設(shè)置內(nèi)容:選中“PG/PC is the only master on the bus”,其余內(nèi)容沿用默認(rèn)值,或根據(jù) CPU 的狀態(tài)變更。 Local Connection 設(shè)置:COM Port=硬件連接的串口,Transmission Rate=PC Adapter 的 撥碼位置。 確認(rèn)后退出設(shè)置,如果上下位機參數(shù)一致的話,此時連機就會成功。
2. IW 和 PIW 有什么區(qū)別 問:STEP7 在實際應(yīng)用中 IW 和 PIW 有什么區(qū)別?
答:我個人理解:對于沒有相應(yīng)的映像緩沖區(qū)的輸入地址,一定采用 PIW 指令,而一般外 設(shè)輸入地址,都是沒有映像緩沖區(qū)的。對于有映像緩沖區(qū)的輸入地址,一般使用 IW,表示 取映像緩沖區(qū)內(nèi)數(shù)據(jù),但也可用 PIW,表示直接取地址內(nèi)的數(shù)據(jù)而非映像緩沖區(qū)的數(shù)據(jù), 相當(dāng)于立即讀取。對于輸出亦是如此。
3. 模擬信號接地問題
問:我用的 SM331 8*12bit 模塊信號有時正常有時不正常,后來我把 COMP-跟信號的 M- 接起來就好了,但我同時發(fā)現(xiàn)他們之間接電容也可以,是怎么回事??模塊的 COMP-端、 各信號的 M-端和模塊 24 伏供電的 M 端之間電氣上有什么關(guān)系??
答:對隔離輸入模板,.摸板參考地 Mana 與 CPU 的電源地 M 沒有電連接。因此 Mana 與 M 有電位差時,必須采用隔離輸入模板。但是,如果電位差超過 Eiso,則必須建立 Mana 與 M 之間的連接。對 SIEMENS 的模板,Eiso=75VDC 或 60VAC。
對非隔離輸入模板,則必須建立 Mana 與 M 之間的連接。 為抑止信號地 M-與 Mana 之間 的共模干擾,不同傳感器的接地方式不同,限于篇幅以及圖解困難,難以細(xì)說。一般原則是, 建立信號地與模板的地、模板地與(CPU)系統(tǒng)地的連接。如果有干擾環(huán)流,則將取消模 板地與系統(tǒng)地的連接,讓模擬地懸浮。另外,屏蔽推薦雙端接地,如果有干擾環(huán)流,則改為 單端。
4. cp342-5 的放置位置有要求嗎?放在軌道的什么地方最合適 問:cp342-5 的放置位置有要求嗎?放在軌道的什么地方最合適?
答:CP342-5 工作原理是, 首先通過硬件配置將各 DP 子站的分布 I/O 映射到 CP342-5 的內(nèi) 存,然后再通過 FC1(DP_SEND)、FC2(DP_RECV)實現(xiàn) CPU 與 CP342-5 的數(shù)據(jù)交換。數(shù)據(jù) 傳遞的過程如下:
FC1 CPU 內(nèi)存————->CP342-5 ——————->DP 子站的輸出 FC2 CPU 內(nèi)存<————-CP342-5 <——————-DP 子站的輸入 程序中我們控制的只是 CPU 與 CP342-5 之間的通訊,而子站與 CP342-5 的數(shù)據(jù)交換是由 CP342-5 根據(jù)硬件配置自動完成的。
關(guān)于 cp341 與 MM440 通訊 問:我用 s7-300(cp341)與 MM440 的 com 口(29 30)通訊控制變頻器 2 個 PZD,4 個 PKW 具體參數(shù)設(shè)置如下: P003=3;P700=5;P1000=5;P2011=1;P2012=2;P2013=4;其他參數(shù)采用工廠設(shè)置。 仿照 USS-S7 中的例程進行編程;但是只能向變頻器發(fā)送 PZD 參數(shù)(控制字 1 和主設(shè)定值), 但不能返回任何參數(shù)。CP341 的指示燈只顯示不斷發(fā)送,接受燈不亮。 在數(shù)據(jù)塊 dbnd(DB100)中的 DBW6(通訊狀態(tài)字)的值為 0200;DBW8(通訊故障字) 的值為 0080;不知是什么意思?
[NextPage]
答:CP341(RS422/485)采用(RS485)ASCII 碼協(xié)議。CP341 如果采用手冊中的接線 方式(11+,4-)則 cp341 的接收發(fā)送燈同時亮,但是不能進行數(shù)據(jù)傳輸;如果接線為(9+, 2-)則出現(xiàn)前述情況,即只能向變頻器發(fā)送 PZD 參數(shù)(控制字 1 和主設(shè)定值),但不能返回 任何參數(shù)。
如果你只接了 9、2 的話,現(xiàn)象則說明你的參數(shù)設(shè)置沒有問題。在 4 線方式下,9、2 是發(fā)送 端。11、4 是接受端,沒有接線自然沒有數(shù)據(jù)返回。
對 MM440 應(yīng)該用 2 線方式,接線是 11(CP341)————-29(mm440) 4(CP341)————-30(mm440) 且 2 與 4、9 與 11 要短接,你接了嗎? 此外,在 PKW 中你的任務(wù)識別標(biāo)記 ID 和參數(shù)號填對了嗎?
5. 315-2DP 與 ET200M
問:通過 DP 相連,CPU 地址為 2,ET200M 地址為 5,硬件上地址設(shè)置正確。 在項目管理器 里把軟硬件組態(tài)好了以后,把 SIMATIC300 STATION 傳給 PLC,顯示 SF 錯誤,ONLINE 情況下, OB1 不運行。 如果把 HARDWARE 再傳一遍,則 SF 錯誤無,OB1 可運行,現(xiàn)在再把 SIMATIC300 STATION 傳給 PLC,則重新有 SF 錯誤。 我原來以后,把 SIMATIC300 STATION 傳給 PLC 一次,相當(dāng)于軟硬件組態(tài)都傳一次,請 問各位高手,這樣正常嗎?
答:我想樓上的各位可能沒有看清楚 royal 的問題:他通過 HARDWARE 下載+OB 下載, 沒有問題,這樣可以排除是組態(tài)和程序的問題。他只有在用 STATION 下載時才出現(xiàn)故障, SF 燈亮。所以原因不是很明確。
我個人認(rèn)為是不是 royal 并沒有將 HARDWARE 進行“編譯保存”,因此他的程序塊內(nèi)沒有 “SYSTEM BLOCKS”,所以才出現(xiàn)他所說的現(xiàn)象。請 royal 在試一試!
6. S7-300PID 的 FB41CONT_C 功能及參數(shù)設(shè)定
問:請教各位高手,本人現(xiàn)用到西門子 S7-300(CPU315)做整流系統(tǒng)的 PID 控制,具體 是由 AI 模塊輸入 4-20MA 信號(既 A 柜/B 柜飽和電抗器控制電流信號反饋和機組 A 柜/B 柜直流電流信號反饋),通過 CPU 調(diào)用 PID 功能塊,實現(xiàn)自動閉環(huán)控制,最后由 AO 模塊 輸出一個 4-20MA 的信號給穩(wěn)流系統(tǒng)(既 A 柜/B 柜電流給定反饋)。
現(xiàn)請教:1、具體應(yīng)調(diào)用 S7 的 PID 中的哪些功能塊。我是直接在 OB1 里邊調(diào)用 FB41,不 知可否。 2、PID 標(biāo)準(zhǔn)塊 FB41 的輸入輸出參數(shù)如何整定,PV_PER、SP_INT、PV_IN 有何區(qū)別。 3、GAIN、TI、TD 如何整定。 4、MAN_ON、PVPER_ON 怎么用,是直接在 FB41 的輸入端寫嗎?
答:原理上,PID 的調(diào)節(jié)節(jié)奏應(yīng)該與其采樣周期一致,這是數(shù)學(xué)模型應(yīng)與物理過程一致的要 求。這也就是 FB41 要在 OB35 中周期調(diào)用且 OB35 的周期要與 FB41 采樣周期一致的原因。
當(dāng)然,在 OB1 或其他 FC、FB 中調(diào)用 FB41 也是可以的,此時最好將 OB1 參數(shù)區(qū)中掃描周 期作為 FB41 的采樣周期。 本人在管道恒流恒壓的 PID 過程控制中,也曾在 FC 中無條件連續(xù)調(diào)用 FB41,PID 效果也 還令人滿意。我個人認(rèn)為,精度要求不高的應(yīng)用中,簡單調(diào)用也是可以的。 FB41 參數(shù)的設(shè)置很靈活,可根據(jù)自己的習(xí)慣或應(yīng)用的方便選擇。下面是一種方式。 MAN_ON :激活 PID 手動調(diào)節(jié)給定值 MAN 的使能位,可用 PID 手自動轉(zhuǎn)換位來觸發(fā)。 PVPER_ON :是 PID 輸入輸出參數(shù)“PERIPHERAL 化”的使能位,即將參數(shù)看成 0~27648 之間的整數(shù)。換個說法,就是 PID 的反饋值直接取自相應(yīng) AIW 通道,而 PID 輸出則直接給 出到 AQW 通道。參數(shù)整定由 FB41 完成??捎谜{(diào)節(jié)裝置的啟動標(biāo)志來觸發(fā)本位。 MAN :PID 手動調(diào)節(jié)給定值,當(dāng)“MAN_ON=1”時有效。 CYCLE :采樣周期。根據(jù)物理量變化快慢定,一般要求與 FB41 執(zhí)行的周期一致。 SP_INT:PID 的設(shè)定值。注意設(shè)定值與反饋值的單位一致。為了避免錯誤,建議將 SP_INT 轉(zhuǎn)換為-100.0~100.0%之間無量綱的百分?jǐn)?shù),輸入到 FB41 時,注意只取百分號之前的數(shù)即可。 PV_PER:PID 過程的反饋值,直接取自反饋量的 AIW 通道的 A/D 碼。僅在“PVPER_ON=1”時有效。 GAIN:比例系數(shù)。 TI:積分時間。 TD:微分時間。 LMN_PER:PID 的調(diào)節(jié)輸出,直接對應(yīng)調(diào)節(jié)輸出 AQW 通道。 設(shè)置了上述參數(shù),基本的 PID 調(diào)節(jié)就可以實現(xiàn)了。根據(jù)需要再完善其他參數(shù)的設(shè)置,比如 死區(qū)的設(shè)定等。 利用 STEP7 中的 PID 賦值工具可形象快捷地完成參數(shù)設(shè)置,結(jié)果直接存入相應(yīng)背景數(shù)據(jù)塊,
[NextPage] FB41 調(diào)用時無須再賦值。
7. 除 300 中的密碼
問:我在使用 CPU313C-2PTP 時,往 PLC 里下了一個程序,開始還好使,可下載了幾次之后, 竟然要求密碼!本人申明,程序沒加密,而且本人還不知如何加密!請問大蝦, 如何清空 PLC 的程序而不需要密碼?
答:你需要對 MMC 卡進行格式化操作。格式化過程如下:
1. 將開關(guān)置為“MRES ”位置,并保持,直至 LED 停止閃亮(即直至大約 9 秒鐘后永亮 著)。 2. 在隨后的 3 秒內(nèi),釋放開關(guān),并再次切換為“MRES ”位置。STOP LED 現(xiàn)在閃亮, 指示正在進行格式化。 一定要使用規(guī)定的操作順序。否則,MMC 就不能進行格式化,而是返回存儲器復(fù)位狀態(tài)。 我建議你在 http://www.ad.siemens.com.cn/download/manual/asbbbb 上下載 S7-300C 的所有資料仔 細(xì)讀一讀 才進行以 上操作, 在《 S7-300 可編程控制器 CPU 312C 至314C-2DP/PtP CPU 技術(shù)參數(shù)》一書上有此操作的詳細(xì)說明,并有注意事項!請注意。
8. 00 的 L 指令
問:L 指令裝一個立即數(shù)(常數(shù))到 ACCU1L 1
如何表達(dá)我這個裝入的數(shù)是 Byte? Word? DWord? S7300 還未入門,請高手指教!
答:在裝入的時候,如果被裝入的數(shù)太短,達(dá)不到 4BYTE(大多情況這樣),則在裝入的 時候,會自動填 0而在取出的時候,如果目標(biāo)是 4BYTE,則全盤復(fù)制,如果短了,就只復(fù)制需要的長度,另外的就被拋棄了,其實被拋棄的部分一般是 0 的,編程時候需要知道的。 比如 L L#16#01020304,這是一個 32 位的 DWORD然后 T MW0,長出的部分被丟掉,最終 MW0 的內(nèi)容為 16#0304 除非有意這樣做,否則做之前是要保證數(shù)據(jù)沒有溢出的。否則計算就亂套了。 反過來,L 16#FFFE (INT -2)T MD0則 MD0 的值為 L#16#0000FFFE (DINT 65534) 數(shù)據(jù)雖然沒有溢出,但數(shù)據(jù)格式不能繼承了。 這種時候,分別需要 DTI 和 ITD 命令進行轉(zhuǎn)換。 至于 200 里面的 MOVB,MOVW,MOVD 等的命令,我想,在 300 里面它是自動的,根據(jù)目 標(biāo)數(shù)的尺寸,自動實現(xiàn)不同的 MOVE 功能,與 200 對應(yīng)。 9. SB 接口和 S7-200 及 S7-300 連接的體會 我最近換了一個新筆記本,沒有串口,最后發(fā)現(xiàn)它不能和 S7-200 及 S7-300 連接,急得我 只冒汗(差一點兒吐血了),不過最終都搞好了,現(xiàn)把我的體會說一下,以供大家參考。
S7-200 連接過程: 1:安裝 200 軟件,連接,不行。 2:在本網(wǎng)站上下載延時補丁程序,安裝后連接,不行。 3http://www4.ad.siemens.de/WW/llisapi.dll?func=ll&objbbbbbb=csView&lang=en&objId=7 843251 下載了一個延時程序,安裝,行! S7-300 連接過程(版本為 step7-5.2): 1:安裝 300 軟件,連接,不行。 2:查看各種資料、檢查各種設(shè)置、咨詢各種人員、連接,不行。 3:最后安裝 bbbbbbs2000 的補丁程序(SP2),連接,行(好高興啊?。?綜上所述: 1:先要保證你的 USB 口轉(zhuǎn)串口在硬件上和軟件上(就是驅(qū)動)沒有問題。 2:200 要下載能解決問題的延時補丁程序。 3;300 要下載合適的電腦操作系統(tǒng)的補丁程序。
[NextPage]
10. lc 程序的下載問題
問:在一個網(wǎng)絡(luò)中(比如 profibus),有多個 plc,在 step7 中硬件組態(tài)中也有 多個 plc,所編程序是整個網(wǎng)絡(luò)系統(tǒng)的程序,那么程序下載的時候,如何確定哪 些程序被下載到哪一個 plc 中?
答:MPI 網(wǎng)絡(luò)中多個 CPU(S7-300/400)及 HMI PANEL(WINCE BASED)的程序下載
1. 按照你所需要的網(wǎng)絡(luò),完成硬件安裝及通訊線的連接. 2. 對所有的 CPU,默認(rèn)地址都是 2,所以可以分別上電,下載硬件配置與程序. 3. 對于 PANEL 可以通過其控制面板的 S7-TRANSFER 設(shè)置網(wǎng)絡(luò)地址,然后通過 MPI 網(wǎng)絡(luò)直接 下載 PANEL 的組態(tài)程序.注意,此時 S7-TRANSFER 中的 ONLY MASTER ON THE BUS 不能被 選中. 4. 當(dāng)使用 CP5511/5611 以點對點的方式對 PANEL 下載程序時,S7-TRANSFER 中的 ONLY MASTER ON THE BUS 必須被選中.
11. 300 中,如何實現(xiàn) S7-200 中 SM0.3 的功能
問:在 S7-300 中,如何實現(xiàn) S7-200 中 SM0.3 的功能?:即開機后進入 RUN 狀態(tài),ON 一個 掃描周期,請各位賜教.
答:你必須在 OB100 中調(diào)用 SFB21 “RESUME”,原理及注意事項如下。
If there is a rising edge at control bbbbb REQ, SFB 21 "RESUME" activates a hot restart on the remote device selected with the ID. The following conditions must be met if the remote device is a CPU: 1、The CPU must be in the STOP mode. 2、The key switch of the CPU must be set to "RUN" or "RUN-P." 3、When you created the configuration with STEP 7, you allowed for a manual hot restart. 4、There must be no condition preventing a hot restart.
Once the hot restart has been completed, the device changes to the RUN mode and sends a positive execution acknowledgement. When the positive acknowledgement is bbbbuated, the status bbbbbeter DONE is set to 1. Any errors that occurred are indicated in the status bbbbbeters ERROR and STATUS. A restart can only be activated again in the same remote device after the previous hot restart has been completed.
12. 關(guān)于 IM153-2 配置
問:我的 S7-400H 系統(tǒng)中 IM153-2 的定貨型號是 6ES7153-2AR00-0XA0,但是在 S7V52 中 HW CONFIG 里無法找到此型號的模塊,請問是不是最新產(chǎn)品 在如何硬件配置里如何處理?
答:由于是冗余配置,6ES7153-2AR00-0XA0 是由兩塊 6ES7153-2AA02-0XB0 組成。硬 件配置時插入 6ES7153-2AA02-0XB0。
13. 一些奇怪的問題
問:1、能不能用 WINCC 直接控制 ET200S?不用任何 PLC,系統(tǒng)的功能很簡單,算法在 WINCC 中實現(xiàn)?,F(xiàn)在的問題是 WINCC 能直接控制 ET200S 嗎?(我在一個系統(tǒng)看到這樣 的結(jié)構(gòu),不知道能不能實現(xiàn))
2、SFC15,SFC16 在讀寫智能從站時用,超過 4 個 BYTE 的話就需要 SFC15,SFC16? 如果我一個一個字節(jié)讀的話(讀很多個)是不是就沒有這個限制了。
答:請注意:S7-200 與 ET200S 是兩個不同的東東。
ET-200S 與 WINCC 連,方法: 1、帶 CPU 的 IM151+CP5611,原理過程與 S7-300 類似; 2、如 SHINE 所說,cp5611/5613+SIMATIC NET,原理過程與連 EM277 類似。通過 COM_PROFIBUS 將 CP5611/5613 定義成一類主站,并組態(tài)相應(yīng)從站,從而實現(xiàn)對從站數(shù) 據(jù)的讀寫。如果有邏輯的話,需借助腳本語言。
|