當前位置:首頁 » 編程軟體 » fb41編程實例

fb41編程實例

發布時間: 2022-08-06 18:59:47

『壹』 fb41 與sfb41的區別

FB41和SFB41功能完全一樣。 SFB41是系統集成功能,只有S7-300C及314IFM這幾種CPU中集成了。 FB41則是通用功能塊,可在任何CPU中運行。

『貳』 我用300PLC做了一個恆壓控制,程序里調用FB41,我想請教的是PID三個參數的調整有沒有簡單快速的辦法,我在

西門子S7-300 plc中只有FB58具有自整定功能,這個功能塊的大小接近10Kb,我曾破解這個塊然後研究其中的自整定編程方法,發現太過復雜,於是果斷放棄。
要想調整好PID控制的三個參數,還是要下一番功夫的。一般壓力控制的參數整定過程不會很復雜,因為不會有明顯的滯後環節,所以只採用比例和積分控制應該就能達到較好的效果。可以先確定比例系數,再確定積分時間。最好通過WINCC等軟體得出反饋曲線,再根據曲線對參數進行調整。具體過程我在這里也說不清楚,可以參考如下網址,希望可以幫到你。
http://wenku..com/view/e80c6447b307e87101f69635.html

『叄』 pid編程求助~!

我同意Naga_Orochi的觀點,要是為了實現對電磁閥的控制不必使用PID,主要是看樓主對溫度控制范圍的要求和執行機構對溫度調節的能力吧,可否再詳細描述應用,畢竟太復雜"成本"也高.

『肆』 西門子PLC300的PID調節怎麼編程啊

S7-300無向導,直接在周期性中斷OB中調用FB41/FB42

A "PID".COM_RST
= L 20.0
BLD 103
A "PID".MAN_ON
= L 20.1
BLD 103
A "PID".PVPER_ON
= L 20.2
BLD 103
A "PID".P_SEL
= L 20.3
BLD 103
A "PID".I_SEL
= L 20.4
BLD 103
A "PID".INT_HOLD
= L 20.5
BLD 103
A "PID".I_ITL_ON
= L 20.6
BLD 103
A "PID".D_SEL
= L 20.7
BLD 103
CALL "CONT_C" , "PID"
COM_RST :=L20.0
MAN_ON :=L20.1
PVPER_ON:=L20.2
P_SEL :=L20.3
I_SEL :=L20.4
INT_HOLD:=L20.5
I_ITL_ON:=L20.6
D_SEL :=L20.7
CYCLE :="PID".CYCLE
SP_INT :="PID".SP_INT
PV_IN :="PID".PV_IN
PV_PER :="PID".PV_PER
MAN :="PID".MAN
GAIN :="PID".GAIN
TI :="PID".TI
TD :="PID".TD
TM_LAG :="PID".TM_LAG
DEADB_W :="PID".DEADB_W
LMN_HLM :="PID".LMN_HLM
LMN_LLM :="PID".LMN_LLM
PV_FAC :="PID".PV_FAC
PV_OFF :="PID".PV_OFF
LMN_FAC :="PID".LMN_FAC
LMN_OFF :="PID".LMN_OFF
I_ITLVAL:="PID".I_ITLVAL
DISV :="PID".DISV
LMN :="PID".LMN
LMN_PER :="PID".LMN_PER
QLMN_HLM:="PID".QLMN_HLM
QLMN_LLM:="PID".QLMN_LLM
LMN_P :="PID".LMN_P
LMN_I :="PID".LMN_I
LMN_D :="PID".LMN_D
PV :="PID".PV
ER :="PID".ER
NOP 0

『伍』 "0x07fb41e0"指令用的"0x00000008"內存不能為"read"

該內存不能read written常見原因
使用Windows操作系統的人有時會遇到這樣的錯誤信息:「0X????????指令引用的0x00000000

內存,該內存不能written」,然後應用程序被關閉。如果去請教一些「高手」,得到的回答

往往是「Windows就是這樣不穩定」之類的義憤和不屑。其實,這個錯誤並不一定是Windows

不穩定造成的。本文就來簡單分析這種錯誤的常見原因。

一、應用程序沒有檢查內存分配失敗
程序需要一塊內存用以保存數據時,就需要調用操作系統提供的「功能函數」來申請,如果

內存分配成功,函數就會將所新開辟的內存區地址返回給應用程序,應用程序就可以通過這

個地址使用這塊內存。這就是「動態內存分配」,內存地址也就是編程中的「指針」。
內存不是永遠都招之即來、用之不盡的,有時候內存分配也會失敗。當分配失敗時系統函數

會返回一個0值,這時返回值「0」已不表示新啟用的指針,而是系統向應用程序發出的一個

通知,告知出現了錯誤。作為應用程序,在每一次申請內存後都應該檢查返回值是否為0,如

果是,則意味著出現了故障,應該採取一些措施挽救,這就增強了程序的「健壯性」。
若應用程序沒有檢查這個錯誤,它就會按照「思維慣性」認為這個值是給它分配的可用指針

,繼續在之後的運行中使用這塊內存。真正的0地址內存區保存的是計算機系統中最重要的「

中斷描述符表」,絕對不允許應用程序使用。在沒有保護機制的操作系統下(如DOS),寫數據

到這個地址會導致立即死機,而在健壯的操作系統中,如Windows等,這個操作會馬上被系統

的保護機制捕獲,其結果就是由操作系統強行關閉出錯的應用程序,以防止其錯誤擴大。這

時候,就會出現上述的「寫內存」錯誤,並指出被引用的內存地址為「0x00000000」。
內存分配失敗故障的原因很多,內存不夠、系統函數的版本不匹配等都可能有影響。因此,

這種分配失敗多見於操作系統使用很長時間後,安裝了多種應用程序(包括無意中「安裝」的

病毒程序),更改了大量的系統參數和系統文件之後。
二、應用程序由於自身BUG引用了不正常的內存指針
在使用動態分配的應用程序中,有時會有這樣的情況出現:程序試圖讀寫一塊「應該可用」

的內存,但不知為什麼,這個預料中可用的指針已經失效了。有可能是「忘記了」向操作系

統要求分配,也可能是程序自己在某個時候已經注銷了這塊內存而「沒有留意」等等。注銷

了的內存被系統回收,其訪問權已經不屬於該應用程序,因此讀寫操作也同樣會觸發系統的

保護機制,企圖「違法」的程序唯一的下場就是被操作終止運行,回收全部資源。計算機世

界的法律還是要比人類有效和嚴厲得多啊! 像這樣的情況都屬於程序自身的BUG,你往往可

在特定的操作順序下重現錯誤。無效指針不一定總是0,因此錯誤提示中的內存地址也不一定

為「0x00000000」,而是其他隨機數字。
如果系統經常有所提到的錯誤提示,下面的建議可能會有幫助:
1.查看系統中是否有木馬或病毒。這類程序為了控制系統往往不負責任地修改系統,從而導

致操作系統異常。平常應加強信息安全意識,對來源不明的可執行程序絕不好奇。
2.更新操作系統,讓操作系統的安裝程序重新拷貝正確版本的系統文件、修正系統參數。有

時候操作系統本身也會有BUG,要注意安裝官方發行的升級程序。
3.試用新版本的應用程序。

運行某些程序的時候,有時會出現內存錯誤的提示,然後該程序就關閉。

「0x????????」指令引用的「0x????????」內存。該內存不能為「read」。

「0x????????」指令引用的「0x????????」內存,該內存不能為「written」。

不知你出現過類似這樣的故障嗎?(0x後面內容有可能不一樣。)

一般出現這個現象有方面的,一是硬體,即內存方面有問題,二是軟體,這就有多方面的問

題了。

下面先說說硬體:

一般來說,內存出現問題的可能性並不大,主要方面是:內存條壞了、內存質量有問題,還

有就是2個不同牌子不同容量的內存混插,也比較容易出現不兼容的情況,同時還要注意散熱

問題,特別是超頻後。你可以使用MemTest 這個軟體來檢測一下內存,它可以徹底的檢測出

內存的穩定度。

假如你是雙內存,而且是不同品牌的內存條混插或者買了二手內存時,出現這個問題,這時

,你就要檢查是不是內存出問題了或者和其它硬體不兼容。如果都沒有,那就從軟體方面排

除故障了。

先簡單說說原理:內存有個存放數據的地方叫緩沖區,當程序把數據放在其一位置時,因為

沒有足夠空間,就會發生溢出現象。舉個例子:一個桶子只能將一斤的水,當你放入兩斤的

水進入時,就會溢出來。而系統則是在屏幕上表現出來。這個問題,經常出現在windows2000

和XP系統上,Windows 2000/XP對硬體的要求是很苛刻的,一旦遇到資源死鎖、溢出或者類似

Windows 98里的非法操作,系統為保持穩定,就會出現上述情況。另外也可能是硬體設備之

間的兼容性不好造成的。

下面我從幾個例子給大家分析:

例一:打開IE瀏覽器或者沒過幾分鍾就會出現"0x70dcf39f"指令引用的"0x00000000"內存。

該內存不能為「read」。要終止程序,請單擊「確定」的信息框,單擊「確定」後,又出現

「發生內部錯誤,您正在使用的其中一個窗口即將關閉」的信息框,關閉該提示信息後,IE

瀏覽器也被關閉。 解決方法:修復或升級IE瀏覽器,同時打上補丁。看過其中一個修復方法

是,Win2000自升級,也就是Win2000升級到Win2000,其實這種方法也就是把系統還原到系統

初始的狀態下。比如你的IE升級到了6.0,自升級後,會被IE5.0代替。

例二:在windows xp下雙擊光碟裡面的「AutoRun.exe」文件,顯示「0x77f745cc」指令引用

的「0x00000078」內存。該內存不能為「written」,要終止程序,請單擊「確定」,而在

Windows 98里運行卻正常。 解決方法:這可能是系統的兼容性問題,winXP的系統,右鍵

「AutoRun.exe」文件,屬性,兼容性,把「用兼容模式運行這個程序」項選擇上,並選擇「

Windows 98/Me」。win2000如果打了SP的補丁後,只要開始,運行,輸入:regsvr32

c:\\winnt\\apppatch\\slayerui.dll。右鍵,屬性,也會出現兼容性的選項。

例三:RealOne Gold關閉時出現錯誤,以前一直使用正常,最近卻在每次關閉時出現

「0xffffffff」指令引用的「0xffffffff」內存。該內存不能為「read」 的提示。 解決方

法:當使用的輸入法為微軟拼音輸入法2003,並且隱藏語言欄時(不隱藏時沒問題)關閉

RealOne就會出現這個問題,因此在關閉RealOne之前可以顯示語言欄或者將任意其他輸入法

作為當前輸入法來解決這個問題。

例四:我的豪傑超級解霸自從上網後就不能播放了,每次都提示「Ox060692f6」(每次變化

)指令引用的「Oxff000011」內存不能為「read」,終止程序請按確定。 解決方法:試試重

裝豪傑超級解霸,如果重裝後還會,到官方網站下載相應版本的補丁試試。還不行,只好換就

用別的播放器試試了。

例五:雙擊一個游戲的快捷方式,「Ox77f5cdO」指令引用「Oxffffffff」內 存,該內存不

能為「read」 ,並且提示Client.dat程序錯誤。 解決方法:重裝顯卡的最新驅動程序,然

後下載並且安裝DirectX9.0。

例六:一個朋友發信息過來,我的電腦便出現了錯誤信息:「0*772b548f」指令引用的

「0*00303033」內存,該內存不能為「written」,然後QQ自動下線,而再打開QQ,發現了他

發過來的十幾條的信息。 解決方法:這是對方利用QQ的BUG,發送特殊的代碼,做QQ出錯,

只要打上補丁或升級到最新版本,就沒事了。

通過上面的幾個例子,可以看到,出現故障的原因有好多種,在這里把已經提到和有可能發

生的原因列個表,方便查閱。

解決方法

1、內存條壞了更換內存條

2、雙內存不兼容使用同品牌的內存或只用一條內存

3、內存質量問題更換內存條

4、散熱問題加強機箱內部的散熱

5、內存和主板沒插好或和其它硬體不兼容等重插內存或換個插糟

6、硬碟有問題更換硬碟

7、驅動問題重裝驅動。如果是新系統,要先安裝主板驅動

8、軟體損壞重裝軟體

9、軟體有BUG打補丁或用最新的版本。

10、軟體和系統不兼容給軟體打上補丁或者試試系統的兼容模式

11、軟體和軟體之間有沖突如果最近安裝了什麼新軟體,卸載了試試

12、軟體要使用到其它相關的軟體有問題重裝相關軟體。比如播放某一格式的文件時出錯,

可能是這個文件的解碼器有問題

13、病毒問題殺毒

14、殺毒軟體與系統或軟體沖突由於殺毒軟體是進入底層監控系統的,可能與一些軟體沖突

,卸載了試試

15、系統本身有問題有時候操作系統本身也會有BUG,要注意安裝官方發行的升級程序,像SP

的補丁,最好要打上。如果還不行重裝系統或更換其它版本的系統了。

使用Windows出現藍色屏幕是經常的事,而且每每因為不清楚錯誤的來源而頻繁重新安裝系統

,勞神費時。下列收集了一些windows死機密碼,供大家參考。

數值 敘述

0 0x0000 作業完成。

1 0x0001 不正確的函數。

2 0x0002 系統找不到指定的檔案。

3 0x0003 系統找不到指定的路徑。

4 0x0004 系統無法開啟檔案。

5 0x0005 拒絕存取。

6 0x0006 無效的代碼。

7 0x0007 儲存體控制區塊已毀。

8 0x0008 儲存體空間不足,無法處理這個指令。

9 0x0009 儲存體控制區塊位址無效。

10 0x000a 環境不正確。

11 0x000b 嘗試載入一個格式錯誤的程式。

12 0x000c 存取碼錯誤。

13 0x000d 資料錯誤。

14 0x000e 儲存體空間不夠,無法完成這項作業。

15 0x000f 系統找不到指定的磁碟機。

16 0x0010 無法移除目錄。

17 0x0011 系統無法將檔案移到 其他的磁碟機。

18 0x0012 沒有任何檔案。

19 0x0013 儲存媒體為防寫狀態。

20 0x0014 系統找不到指定的裝置。

21 0x0015 裝置尚未就緒。

22 0x0016 裝置無法識別指令。

23 0x0017 資料錯誤 (cyclic rendancy check)

24 0x0018 程式發出一個長 度錯誤的指令。

25 0x0019 磁碟機在磁碟找不到 持定的磁區或磁軌。

26 0x001a 指定的磁碟或磁片無法存取。

27 0x001b 磁碟機找不到要求的磁區。

28 0x001c 印表機沒有紙。

29 0x001d 系統無法將資料寫入指定的磁碟機。

30 0x001e 系統無法讀取指定的裝置。

31 0x001f 連接到系統的某個裝置沒有作用。

32 0x0020 the process cannot access the file because it is being used by another

process.

33 0x0021 檔案的一部份被鎖定, 現在無法存取。

34 0x0022 磁碟機的磁片不正確。 請將 %2 (volume serial number: %3) 插入磁碟機 %1。

36 0x0024 開啟的分享檔案數量太多。

38 0x0026 到達檔案結尾。

39 0x0027 磁碟已滿。

50 0x0032 不支援這種網路要求。

51 0x0033 遠端電腦無法使用。

52 0x0034 網路名稱重復。

53 0x0035 網路路徑找不到。

54 0x0036 網路忙碌中。

55 0x0037 the specified network resource or device is no longer available.

56 0x0038 the network bios command limit has been reached.

57 0x0039 網路配接卡發生問題。

58 0x003a 指定的伺服器無法執行要求的作業。

59 0x003b 網路發生意外錯誤。

60 0x003c 遠端配接卡不相容。

61 0x003d 印表機佇列已滿。

62 0x003e 伺服器的空間無法儲存等候列印的檔案。

63 0x003f 等候列印的檔案已經刪除。

64 0x0040 指定的網路名稱無法使用。

65 0x0041 拒絕存取網路。

66 0x0042 網路資源類型錯誤。

67 0x0043 網路名稱找不到。

68 0x0044 超過區域電腦網路配接卡的名稱限制。

69 0x0045 超過網路 bios 作業階段的限制。

70 0x0046 遠端伺服器已經暫停或者正在起始中。

71 0x0047 由於連線數目已達上限,此時無法再連線到這台遠端電腦。

72 0x0048 指定的印表機或磁碟裝置已經暫停作用。

80 0x0050 檔案已經存在。

82 0x0052 無法建立目錄或檔案。

83 0x0053 int 24 失敗

84 0x0054 處理這項要求的儲存體無法使用。

85 0x0055 近端裝置名稱已經在使用中。

86 0x0056 指定的網路密碼錯誤。

87 0x0057 參數錯誤。

88 0x0058 網路發生資料寫入錯誤。

89 0x0059 此時系統無法執行其他行程。

100 0x0064 無法建立其他的系統 semaphore。

101 0x0065 屬於其他行程專用的 semaphore 。

102 0x0066 semaphore 已經設定,而且無法關閉。

103 0x0067 無法指定 semaphore 。

104 0x0068 在岔斷時間無法要求專用的 semaphore 。

105 0x0069 此 semaphore 先前的擁有權已經結束。

106 0x006a 請將磁片插入 %1。

107 0x006b 因為代用的磁片尚未插入,所以程式已經停止。

108 0x006c 磁碟正在使用中或被鎖定。

109 0x006d pipe 已經中止。

110 0x006e 系統無法開啟指定的 裝置或檔案。

111 0x006f 檔名太長。

112 0x0070 磁碟空間不足。

113 0x0071 沒有可用的內部檔案識別字。

114 0x0072 目標內部檔案識別字不正確。

117 0x0075 由應用程式所執行的 ioctl 呼叫 不正確。

118 0x0076 寫入驗證參數值不正確。

119 0x0077 系統不支援所要求的指令。

120 0x0078 此項功能僅在 win32 模式有效。

121 0x0079 semaphore 超過逾時期間。

122 0x007a 傳到系統呼叫的資料區域 太小。

123 0x007b 檔名、目錄名稱或儲存體標簽語法錯誤。

124 0x007c 系統呼叫層次不正確。

125 0x007d 磁碟沒有設定標簽。

126 0x007e 找不到指定的模組。

127 0x007f 找不到指定的程序。

128 0x0080 沒有子行程可供等待。

129 0x0081 %1 這個應用程式無法在 win32 模式下執行。

130 0x0082 attempt to use a file handle to an open disk partition for an

operation other than raw disk i/o.

131 0x0083 嘗試將檔案指標移至檔案開頭之前。

132 0x0084 無法在指定的裝置或檔案,設定檔案指標。

133 0x0085 join 或 subst 指令 無法用於 內含事先結合過的磁碟機。

134 0x0086 嘗試在已經結合的磁碟機,使用 join 或 subst 指令。

135 0x0087 嘗試在已經替換的磁碟機,使 用 join 或 subst 指令。

136 0x0088 系統嘗試刪除 未連結過的磁碟機的連結關系。

137 0x0089 系統嘗試刪除 未替換過的磁碟機的替換關系。

138 0x008a 系統嘗試將磁碟機結合到已經結合過之磁碟機的目錄。

139 0x008b 系統嘗試將磁碟機替換成已經替換過之磁碟機的目錄。

140 0x008c 系統嘗試將磁碟機替換成已經替換過之磁碟機的目錄。

141 0x008d 系統嘗試將磁碟機 subst 成已結合的磁碟機 目錄。

142 0x008e 系統此刻無法執行 join 或 subst。

143 0x008f 系統無法將磁碟機結合或替換同一磁碟機下目錄。

144 0x0090 這個目錄不是根目錄的子目錄。

145 0x0091 目錄仍有資料。

146 0x0092 指定的路徑已經被替換過。

147 0x0093 資源不足,無法處理這項 指令。

148 0x0094 指定的路徑這時候無法使用。

149 0x0095 嘗試要結合或替換的磁碟機目錄,是已經替換過的的目標。

150 0x0096 config.sys 檔未指定系統追蹤資訊,或是追蹤功能被取消。

151 0x0097 指定的 semaphore事件 dosmuxsemwait 數目不正確。

152 0x0098 dosmuxsemwait 沒有執行;設定太多的 semaphore。

153 0x0099 dosmuxsemwait 清單不正確。

154 0x009a 您所輸入的儲存媒體標 元長度限制。

155 0x009b 無法建立其他的執行緒。

156 0x009c 接收行程拒絕接受信號。

157 0x009d 區段已經被舍棄,無法被鎖定。

158 0x009e 區段已經解除鎖定。

159 0x009f 執行緒識別碼的位址不正確。

160 0x00a0 傳到 dosexecpgm 的引數字串不正確。

161 0x00a1 指定的路徑不正確。

162 0x00a2 信號等候處理。

164 0x00a4 系統無法建立執行緒。

167 0x00a7 無法鎖定檔案的部份范圍。

170 0x00aa 所要求的資源正在使用中。

173 0x00ad 取消范圍的鎖定要求不明顯。

174 0x00ae 檔案系統不支援自動變更鎖定類型。

180 0x00b4 系統發現不正確的區段號碼。

182 0x00b6 作業系統無法執行 %1。

183 0x00b7 檔案已存在,無法建立同一檔案。

186 0x00ba 傳送的旗號錯誤。

187 0x00bb 指定的系統旗號找不到。

188 0x00bc 作業系統無法執行 %1。

189 0x00bd 作業系統無法執行 %1。

190 0x00be 作業系統無法執行 %1。

191 0x00bf 無法在 win32 模式下執行 %1。

192 0x00c0 作業系統無法執行 %1。

193 0x00c1 %1 不是正確的 win32 應用程式。

194 0x00c2 作業系統無法執行 %1。

195 0x00c3 作業系統無法執行 %1。

196 0x00c4 作業系統無法執行 這個應用程式。

197 0x00c5 作業系統目前無法執行 這個應用程式。

198 0x00c6 作業系統無法執行 %1。

199 0x00c7 作業系統無法執行 這個應用程式。

200 0x00c8 程式碼的區段不可以大於或等於 64kb。

201 0x00c9 作業系統無法執行 %1。

202 0x00ca 作業系統無法執行 %1。

203 0x00cb 系統找不到輸入的環境選項。 \r

205 0x00cd 在指令子目錄下,沒有任何行程有信號副處理程式。

206 0x00ce 檔案名稱或副檔名太長。

207 0x00cf ring 2 堆疊使用中。

『陸』 西門子s7300不使用FB41塊如何實現液位調節編程實例

液位調節的辦法多的是
但是既然提到了FB41,那應該是想用PID調節
如果控制精度較高,建議你還是老老實實用FB41去寫,你自己寫是寫不出來完整的PID演算法的,因為西門子並沒有提供復雜演算法的指令,比如微積分計算的指令
如果控制精度要求不高,你可以自己寫一個比例控制,然後配合一段類似積分檢測的程序

『柒』 S7-300/400/1200/1500通過Step7編程軟體中的什麼發生不同頻率脈沖

使用功能塊。
plc本機帶高速脈沖輸出型號312c,313c,314c,使用集成的io口可以,若不是帶c的plc需配定位模塊fm353,fm354,fm357模塊高速脈沖串,(pto)和脈寬調節(pwm),是200plc裡面的說法。
300plc使用功能塊,fb41,fb42,fb43相關功能塊使用,參照功能塊說明書。

『捌』 求一個西門子PLC300 PID 連續控制編程d實常式序 ,不是FB41 ,是自己去編寫一個Pid控製程序!!謝謝

這個你只要按照pid的運算公式自己開發一個子程序Yn=Kc*En+Mln+Kd*(En-En_1)+Minitial
Mln=Kc*En+Mln_1

熱點內容
晚晚教編程 發布:2024-04-19 21:56:23 瀏覽:712
安卓換蘋果語音留言怎麼看 發布:2024-04-19 21:56:21 瀏覽:627
解壓神經 發布:2024-04-19 21:47:03 瀏覽:894
c語言字元轉義字元 發布:2024-04-19 21:43:51 瀏覽:727
mysql存儲過程語法 發布:2024-04-19 21:00:04 瀏覽:245
修復損壞的壓縮文件 發布:2024-04-19 20:53:32 瀏覽:423
編程發型 發布:2024-04-19 20:53:28 瀏覽:500
去除空格sql 發布:2024-04-19 20:43:30 瀏覽:785
linuxcp覆蓋 發布:2024-04-19 20:43:30 瀏覽:189
mplayerlinux 發布:2024-04-19 20:33:57 瀏覽:800