當前位置:首頁 » 編程軟體 » bfw編程

bfw編程

發布時間: 2022-11-22 09:13:54

㈠ 變頻器的作用及原理

變頻器工作原理
變頻器主要由整流(交流變直流)、濾波、再次整流(直流變交流)、制動單元、驅動單元、檢測單元微處理單元等組成的。

1. 電機的旋轉速度為什麼能夠自由地改變?

*1: r/min
電機旋轉速度單位:每分鍾旋轉次數,也可表示為rpm.
例如:2極電機 50Hz 3000 [r/min]
4極電機 50Hz 1500 [r/min]
結論:電機的旋轉速度同頻率成比例

本文中所指的電機為感應式交流電機,在工業中所使用的大部分電機均為此類型電機。感應式交流電機(以後簡稱為電機)的旋轉速度近似地確決於電機的極數和頻率。由電機的工作原理決定電機的極數是固定不變的。由於該極數值不是一個連續的數值(為2的倍數,例如極數為2,4,6),所以一般不適和通過改變該值來調整電機的速度。

另外,頻率能夠在電機的外面調節後再供給電機,這樣電機的旋轉速度就可以被自由的控制。

因此,以控制頻率為目的的變頻器,是做為電機調速設備的優選設備。

n = 60f/p
n: 同步速度
f: 電源頻率
p: 電機極對數
結論:改變頻率和電壓是最優的電機控制方法

如果僅改變頻率而不改變電壓,頻率降低時會使電機出於過電壓(過勵磁),導致電機可能被燒壞。因此變頻器在改變頻率的同時必須要同時改變電壓。輸出頻率在額定頻率以上時,電壓卻不可以繼續增加,最高只能是等於電機的額定電壓。

例如:為了使電機的旋轉速度減半,把變頻器的輸出頻率從50Hz改變到25Hz,這時變頻器的輸出電壓就需要從400V改變到約200V

2. 當電機的旋轉速度(頻率)改變時,其輸出轉矩會怎樣?

*1: 工頻電源
由電網提供的動力電源(商用電源)
*2: 起動電流
當電機開始運轉時,變頻器的輸出電流
變頻器驅動時的起動轉矩和最大轉矩要小於直接用工頻電源驅動

電機在工頻電源供電時起動和加速沖擊很大,而當使用變頻器供電時,這些沖擊就要弱一些。工頻直接起動會產生一個大的起動起動電流。而當使用變頻器時,變頻器的輸出電壓和頻率是逐漸加到電機上的,所以電機起動電流和沖擊要小些。

通常,電機產生的轉矩要隨頻率的減小(速度降低)而減小。減小的實際數據在有的變頻器手冊中會給出說明。

通過使用磁通矢量控制的變頻器,將改善電機低速時轉矩的不足,甚至在低速區電機也可輸出足夠的轉矩。

3. 當變頻器調速到大於50Hz頻率時,電機的輸出轉矩將降低

通常的電機是按50Hz電壓設計製造的,其額定轉矩也是在這個電壓范圍內給出的。因此在額定頻率之下的調速稱為恆轉矩調速. (T=Te, P<=Pe)

變頻器輸出頻率大於50Hz頻率時,電機產生的轉矩要以和頻率成反比的線性關系下降。
當電機以大於50Hz頻率速度運行時,電機負載的大小必須要給予考慮,以防止電機輸出轉矩的不足。
舉例,電機在100Hz時產生的轉矩大約要降低到50Hz時產生轉矩的1/2。
因此在額定頻率之上的調速稱為恆功率調速. (P=Ue*Ie)

4. 變頻器50Hz以上的應用情況

大家知道, 對一個特定的電機來說, 其額定電壓和額定電流是不變的。

如變頻器和電機額定值都是: 15kW/380V/30A, 電機可以工作在50Hz以上。

當轉速為50Hz時, 變頻器的輸出電壓為380V, 電流為30A. 這時如果增大輸出頻率到60Hz, 變頻器的最大輸出電壓電流還只能為380V/30A. 很顯然輸出功率不變. 所以我們稱之為恆功率調速.

這時的轉矩情況怎樣呢?

因為P=wT (w:角速度, T:轉矩). 因為P不變, w增加了, 所以轉矩會相應減小。

我們還可以再換一個角度來看:

電機的定子電壓 U = E + I*R (I為電流, R為電子電阻, E為感應電勢)
可以看出, U,I不變時, E也不變.
而E = k*f*X, (k:常數, f: 頻率, X:磁通), 所以當f由50-->60Hz時, X會相應減小
對於電機來說, T=K*I*X, (K:常數, I:電流, X:磁通), 因此轉矩T會跟著磁通X減小而減小.
同時, 小於50Hz時, 由於I*R很小, 所以U/f=E/f不變時, 磁通(X)為常數. 轉矩T和電流成正比. 這也就是為什麼通常用變頻器的過流能力來描述其過載(轉矩)能力. 並稱為恆轉矩調速(額定電流不變-->最大轉矩不變)
結論: 當變頻器輸出頻率從50Hz以上增加時, 電機的輸出轉矩會減小.

5. 其他和輸出轉矩有關的因素

發熱和散熱能力決定變頻器的輸出電流能力,從而影響變頻器的輸出轉矩能力。
載波頻率: 一般變頻器所標的額定電流都是以最高載波頻率, 最高環境溫度下能保證持續輸出的數值. 降低載波頻率, 電機的電流不會受到影響。但元器件的發熱會減小。
環境溫度:就象不會因為檢測到周圍溫度比較低時就增大變頻器保護電流值.
海拔高度: 海拔高度增加, 對散熱和絕緣性能都有影響.一般1000m以下可以不考慮. 以上每1000米降容5%就可以了.

㈡ 用java編程,題目為冒泡法排序。

public class Sort {

public static void main(String[] args){
//隨機產生10個整數
int[] temp = new int[10];
for(int i=0;i<temp.length;i++){
temp[i]=(int) (Math.random()*100);
}

//冒泡法排序
int a;
for(int j=0;j<temp.length-1;j++){
for(int k=j+1;k<temp.length;k++){
if(temp[j]>temp[k]){
a=temp[j];
temp[j]=temp[k];
temp[k]=a;
}

}

}
//輸出排序結果
//輸出排序結果

try {
File file = new File("E:/a.txt");
BufferedWriter bfw= new BufferedWriter(new FileWriter(file));
for(int i=0;i<temp.length;i++){
bfw.write(temp[i]+";");
}
bfw.close();
System.out.println("數據存儲完畢");
}
catch (Exception e) {
System.out.println("數據寫入失敗!!!!");
}
}

}

㈢ JAVA實現面對對象編程,這道題怎麼做

Index.java

importjava.io.BufferedWriter;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.HashMap;
importjava.util.Iterator;
importjava.util.Map;
importjava.util.Scanner;
importjava.util.Set;

publicclassIndex{
//創建全局鍵盤輸入對象.
staticScannersc;

publicstaticvoidmain(String[]args)throwsIOException{
sc=newScanner(System.in);
//創建Map映射,鍵為球隊編號,值為球隊類.
HashMap<String,Team>teams=newHashMap<String,Team>();
//循環命名,用於指定退出和繼續.
Loop:while(true){
//列印選項
System.out.println("1.添加球隊2.查看球隊3.刪除球員信息4.導出球隊信息5.退出");
Stringoption=sc.nextLine();
switch(option){
case"1": //1.添加球隊
addTeam(teams);
break;
case"2": //2.查看球隊
viewTeam(teams);
break;
case"3": //3.刪除球員
deletePlayer(teams);
break;
case"4": //4.導出信息
exportInfo(teams);
break;
case"5": //5.退出系統
exit();
sc.close();//退出此系統之前關閉輸入流.
breakLoop;
default: //其他情況
System.out.println("錯誤輸入,請重新輸入:");
continueLoop;
}
}
}

//根據球隊編號添加隊伍,添加隊伍的同時在球隊中添加球員對象.
publicstaticvoidaddTeam(Map<String,Team>teams){
System.out.println("請輸進球隊編號:");
StringteamID=sc.nextLine();
//創建新球隊對象.
Teamteam=newTeam();
team.setTeamID(teamID);
//把創建的球隊對象加入map映射中.
teams.put(teamID,team);
System.out.println("請輸進球隊名字:");
StringteamName=sc.nextLine();
team.setTeamName(teamName);
System.out.println("請輸進球隊所在城市:");
StringteamCity=sc.nextLine();
team.setTeamCity(teamCity);
//新建一個布爾變數用於判斷是否繼續添加.
booleanflag=true;
while(flag){
System.out.println("請輸進球員名字:");
StringplayerName=sc.nextLine();
System.out.println("請輸進球員場均得分:");
doublepointsPerGame=sc.nextDouble();
sc.nextLine();
System.out.println("請選擇球員類型:1.前鋒2.中鋒3.後衛");
//新建一個position變數,判斷添加的球員類型.
intposition=sc.nextInt();
sc.nextLine();
if(position==1){
Forwardplayer=newForward();
team.setPlayers(player);
player.setPlayerPosition("前鋒");
System.out.println("請輸入場均籃板:");
doublereboundsPerGame=sc.nextDouble();
sc.nextLine();
player.setPlayerName(playerName);
player.setPointsPerGame(pointsPerGame);
player.setReboundsPerGame(reboundsPerGame);
}elseif(position==2){
Centerplayer=newCenter();
team.setPlayers(player);
player.setPlayerPosition("中鋒");
System.out.println("請輸入場均蓋帽:");
doubleblocksPerGame=sc.nextDouble();
sc.nextLine();
player.setPlayerName(playerName);
player.setPointsPerGame(pointsPerGame);
player.setBlocksPerGame(blocksPerGame);
}else{
Guardplayer=newGuard();
team.setPlayers(player);
player.setPlayerPosition("後衛");
System.out.println("請輸入場均助攻:");
doubleassistsPerGame=sc.nextDouble();
sc.nextLine();
player.setPlayerName(playerName);
player.setPointsPerGame(pointsPerGame);
player.setAssistsPerGame(assistsPerGame);
}
System.out.println("是否繼續添加:(Y/N)");
StringisAdd=sc.nextLine();
if(isAdd.equalsIgnoreCase("y"))
flag=true;
else
flag=false;
}
System.out.println("球隊編號 球隊名稱 球隊所在城市");
System.out.println(team.getTeamID()+" "+team.getTeamName()+" "+team.getTeamCity());
}

//根據隊伍,輸出球員信息.
publicstaticvoidviewTeam(Map<String,Team>teams){
//用keySet方法取出map映射中的鍵.用於迭代取Team對象.
Set<String>keyset=teams.keySet();
for(Iterator<String>itt=keyset.iterator();itt.hasNext();){
Stringtmp=itt.next();
Teamteam=teams.get(tmp);
System.out.println("球隊編號 球隊名稱 球隊所在城市");
System.out.println(team.getTeamID()+" "+team.getTeamName()+" "+team.getTeamCity());
//得到Team對象之後,迭代其中的ArrayList,其中存儲了球員對象.
System.out.println("球員名字 場均得分 球員類型");
for(Iterator<Player>itp=team.getPlayers().iterator();itp.hasNext();){
Playerplayer=itp.next();
if(player.getPlayerPosition().equals("前鋒"))
player=(Forward)player;
elseif(player.getPlayerPosition().equals("中鋒"))
player=(Center)player;
else
player=(Guard)player;
System.out.println(player);
}
}
}

//先根據球隊編號,再刪除球員,如沒有球隊/員則會提示.
publicstaticvoiddeletePlayer(Map<String,Team>teams){
System.out.println("請輸入要刪除的球隊編號");
StringteamID=sc.nextLine();
//判斷map映射中是否存在輸入的球隊編號,無則跳回選擇界面.
if(teams.containsKey(teamID)){
Teamteam=teams.get(teamID);
System.out.println("請輸進球員姓名:");
StringplayerName=sc.nextLine();
booleanflag=false;
for(Iterator<Player>it=team.getPlayers().iterator();it.hasNext();){
Playertmp=it.next();
if(playerName.equals(tmp.getPlayerName())){
flag=true;
it.remove();
System.out.println("刪除成功");
break;
}
}
if(!flag)
System.out.println("刪除失敗,無此球員");
}else
System.out.println("無此球隊,請重新選擇功能.");
}

//導出球隊信息到當前目錄.

publicstaticvoidexportInfo(Map<String,Team>teams)throwsIOException{
Set<String>keyset=teams.keySet();
//通過判斷keySet的長度判斷是否輸入過球隊信息.
if(keyset.size()!=0){
BufferedWriterbfw=newBufferedWriter(newFileWriter("Teams.txt"));
for(Iterator<String>it=keyset.iterator();it.hasNext();){
Stringtmp=it.next();
Teamteam=teams.get(tmp);
bfw.write("球隊編號 球隊名稱 球隊所在城市");
bfw.newLine();
bfw.write(team.getTeamID()+" "+team.getTeamName()+" "+team.getTeamCity());
bfw.newLine();
}
bfw.close();
}else{
System.out.println("請先輸進球隊信息,再導出.");
}
}

//退出系統.
publicstaticvoidexit(){
System.out.println("歡迎下次再來.");
}
}

Team.java

importjava.util.ArrayList;

publicclassTeam{
privateStringteamID; //球隊編號
privateStringteamName; //球隊名字
privateStringteamCity; //球隊所在城市
privateArrayList<Player>players; //球員集合

publicTeam(){//實例化Team的同時,實例化ArrayList集合.
players=newArrayList<>();
}

//各屬性get和set方法
publicStringgetTeamID(){
returnteamID;
}

publicvoidsetTeamID(StringteamID){
this.teamID=teamID;
}

publicStringgetTeamName(){
returnteamName;
}

publicvoidsetTeamName(StringteamName){
this.teamName=teamName;
}

publicStringgetTeamCity(){
returnteamCity;
}

publicvoidsetTeamCity(StringteamCity){
this.teamCity=teamCity;
}

publicArrayList<Player>getPlayers(){
returnplayers;
}

//players的set方法,直接將球員添加到ArrayList中.
publicvoidsetPlayers(Playerplayer){
players.add(player);
}

}

Player.java

publicclassPlayer{
protectedStringplayerName; //球員姓名
protecteddoublepointsPerGame; //場均得分
protectedStringplayerPosition; //球員類型

//各個屬性的get,set方法
publicStringgetPlayerName(){
returnplayerName;
}

publicvoidsetPlayerName(StringplayerName){
this.playerName=playerName;
}

publicdoublegetPointsPerGame(){
returnpointsPerGame;
}

publicvoidsetPointsPerGame(doublepointsPerGame){
this.pointsPerGame=pointsPerGame;
}

publicStringgetPlayerPosition(){
returnplayerPosition;
}

publicvoidsetPlayerPosition(StringplayerPosition){
this.playerPosition=playerPosition;
}

//重寫toString方法,方便輸出
publicStringtoString(){
returnplayerName+" "+pointsPerGame+" "+playerPosition;
}
}

Forward.java

{
privatedoublereboundsPerGame;//場均籃板

//get,set方法
(){
returnreboundsPerGame;
}

publicvoidsetReboundsPerGame(doublereboundsPerGame){
this.reboundsPerGame=reboundsPerGame;
}

//重寫toString方法,方便輸出
publicStringtoString(){
returnplayerName+" "+pointsPerGame+" "+playerPosition+" "+"場均籃板 "+reboundsPerGame;
}
}

Center.java

{
privatedoubleblocksPerGame;//場均蓋帽

//get,set方法
publicdoublegetBlocksPerGame(){
returnblocksPerGame;
}

publicvoidsetBlocksPerGame(doubleblocksPerGame){
this.blocksPerGame=blocksPerGame;
}

//重寫toString方法,方便輸出
publicStringtoString(){
returnplayerName+" "+pointsPerGame+" "+playerPosition+" "+"場均蓋帽 "+blocksPerGame;
}
}

Guard.java

publicclassGuardextendsPlayer{
privatedoubleassistsPerGame;//場均助攻

//get,set方法
publicdoublegetAssistsPerGame(){
returnassistsPerGame;
}

publicvoidsetAssistsPerGame(doubleassistsPerGame){
this.assistsPerGame=assistsPerGame;
}

//重寫toString方法,方便輸出
publicStringtoString(){
returnplayerName+" "+pointsPerGame+" "+playerPosition+" "+"場均助攻 "+assistsPerGame;
}
}

除了注釋外有不懂的追問,功能都測試過可以使用,求採納.

㈣ 凱撒密碼,要求C語言編寫,求救!

寫的一般般,希望對LZ有所幫助
#include <stdio.h>
#include <string.h>
int main()
{
char str[201];//存放字元
char tmp[11];//臨時變數
int i;//循環變數
int len;//存放消息長度
scanf("%s",tmp);//這里輸入START,開始
getchar();//接收回車
while(strcmp(tmp,"ENDOFINPUT"))
{
gets(str);//由於輸入中有空格,所以用gets輸入
getchar();//接收回車
len = strlen(str);
for(i=0;i<len;i++)
{
if(str[i]>='A'&&str[i]<='Z')
{
str[i] -= 5 ;
if(str[i] < 65)
{
str[i] +=26;
}
}
}
scanf("%s",tmp);//這里輸入END,結束
printf("%s\n",str);//處理完就直接輸出結果
scanf("%s",tmp);//輸入START表示繼續,輸入ENDOFINPUT則表示最後一個數據集
getchar();//接收回車
}
return 0;

}

㈤ 寶馬發動機製造過程全是機器,這就是為什麼德國汽車牛

寶馬汽車公司也是德國一家歷史悠久的企業。1913年,德國四沖程內燃機的發明人奧托的兒子古斯塔夫-奧托與他的合夥人佛瑞德雷-瑞浦和馬克斯-弗里茲在慕尼黑北郊一個機場附近成立了瑞浦發動機公司,專門從事飛機發動機的製造。由於第一次世界大戰的需要,公司擴大,1916年3月7日改名為Bayerische Flugzeug Werke AG(巴伐利亞飛機公司),縮寫為BFW。這一天也就是寶馬公司的創始日。
古斯塔夫-奧托退休後,BFW公司開始重組,於1917年7月21日登記注冊為Bayerische Motoren Werke GmbH(巴伐利亞發動機有限公司)。公司有了兩位新老闆,一位是傑克-莎柏奴,另一位是甘美路-卡斯丁哥尼,這兩個人都是日後寶馬公司發展史上舉足輕重的人物。

寶馬全新一代3系,代號F30,充滿殺氣的外觀,吸引了不少人的眼球,而這款來自德國的戰馬,究竟是如何誕生的呢?寶馬的慕尼黑工廠,展示出了這款科技與藝術的結晶的誕生過程!
在對公司總部(其建築外型象徵一部四缸引擎)附近的廠房進 行現代化改造與擴展過程中,一種新型的滑軌輸送帶系統已於2003年底/2004年初安裝在寶馬3系列車身組裝生產線上。憑借這種全新的系統,寶馬公司將能夠適應未來的車型要求。
車身組裝車間安裝了寶馬3系列的全套內部系統。組裝工作 大部分在運動之中進行。而在自動安裝汽車頂蓬,駕駛員座 艙和車窗過程中,車身保持靜止。兩名人員專門負責一輛汽 車組裝的每個步驟。在工作過程中,他們沿著組裝生產線進行檢查,然後再返回到起始點。這條長約800米的組裝生產 線上大約有500名工作人員在進行操作。

這套輸送帶系統包括146個鉸接的推動托盤。由於慕尼黑工 廠位於一個歷史沿襲下來的特殊地理位置,因此,只有採用一種折衷靈活的解決方案才行。這些平台都沒有安裝自己的驅動設備,但通過沿組裝生產線分布的側面磨擦驅動設備加以推動。絕對值編碼器同時監控102部驅動設備的精確同步,並防止托盤之間產生縫隙。
在組裝過程中,這一全新的組裝生產線需要在線上的任何位 置都能對車身高度進行調整,以確保在符合人機工程學的最 佳位置上完成組裝工作。因此,每一個托盤都帶有一個升降台,車身最大限度可以被提升80公分。
同時,根據寶馬汽車公司的一項重要的生產計劃要求,在每個平台任意定義的一個點上都能對12伏的測試電壓進行安 全地開關轉換。在組裝時,將對駕駛員座艙的車載電子設備和喇叭進行測試。由於沒有安裝電池,因此,必須從外部提供12伏電壓。在諸如安裝安全氣囊的敏感區域,必須能夠 可靠地切斷電壓,而不必在組裝部分進行永久性布線。

每個推動托盤都有一個帶CPU IM 151的SIMATIC ET200S外部介面,既可以用作SIMATIC S7-400總控器的從站,同 時也可用作平台上的一個主站,以便驅動車身和絕對值解 碼器的升降機構。托盤通過電源導軌信號放大器與SIMATIC中央控制器連接,它們通過集線來可靠地傳輸PROFIBUS信 號。升降裝置也可以通過這種方式在操作中的任意位置進行單獨設置。
整個工廠根據STEP7進行配置,並由2部SIMATIC S7-400s 進行集中控制。工廠的可視化操作使用WinCC進行編程, 從而使得工廠能夠展現不同的細部特點-對每個托盤上 的二進位編碼器狀態進行總體瀏覽。通過掃描辨識標記 可以確定每個托盤的確切位置。作為一種中央現場匯流排, PROFIBUS DP可以提供控制器與外圍設備之間的可靠通信。 使用proTool/Pro進行組態的SIMATIC Multi Panel MP 270B 設備可以用作局部的手工操縱設備,並且允許方便地分布式 訪問輸送帶系統。

因為每個托盤具有獨立的智能性,而且可以經由電源導軌信號放大器來實現通信,因此,工廠在工作周期內具有最大的 任務分配靈活性。這意味著一條生產線可以同時生產幾款車型,並且可以連續饋送新的車型。
車身運輸器包含一個感應式Moby數據載體,這樣可以在任 何時候對車身加以辨識。對於寶馬汽車公司的生產控制、文 件管理和質量保證來說,這都是一個相當重要的環節。

避免偏移
寶馬汽車公司將平台上的組裝員工的人身安全問題始終放 在第一位。其單個元件之間並未彼此連接,以確保單個托盤 不會產生偏移和危及人身安全。即使托盤在移動過程中僅僅 偏移幾毫米,輸送帶也將自動停止運行,從而避免造**身 傷害。
為此,絕對值編碼器將不斷對每個托盤的位置進行掃描。以 安全為中心的SIMATIC控制器SIMATIC S7-416F設備負責不 斷地監視光柵、防護門、托盤感測器和緊急制動開關,並且在必要的時候可以在幾百毫秒之內關閉設備。
本地化安裝的手控 HMI裝置,可以使用 SIMATIC MP270B來實現分布式HMI和緊急制動功能。來自市場領先者的統一標准輸送帶系統的自動化僅是整個生產組合方案的一個環節而 已,其中,西門子公司已經開始接手從車身組裝到通過 六個單元進行傳送的寶馬 3 系列整個生產進程的自動化。 SIMATIC的全集成自動化優點可以在此大顯身手。系統界面 實現了最小化,並且獲得了同質化的控制架構。寶馬汽車公司結構規劃負責人Jakob Wersching解釋說,單一單元的自 動化本身已經是一項復雜的任務,而使六個生產單元互相協 調且不出現重大疏漏問題,這在一個非均質的自動化環境之 中幾乎是不可能實現的。
確保未來兩代車型的生產效率
寶馬汽車公司提供的設備實用性達99%。在工廠投入試運 行之後的六周之內,沒有出現任何大的故障。其中一項原因 就是,這些寶貴的經驗來源於在Lohhof寶馬汽車生產廠的安裝測試,而在測試之中使用了30個滑動托盤。之後,這 些經驗被運用到了慕尼黑的這家工廠。
寶馬汽車公司相信,生產線上全新的人機工程學理念能夠為 員工創造理想的條件,從而將員工的能動性用於提升生產效 率。
通過電源導軌信號放大器的轉換,可以實現組裝周期分配中 的最大靈活性,從而確保能夠根據生產需求迅速做出反應, 同時也確保了寶馬汽車公司能夠經受得起未來車型的沖擊。 慕尼黑工廠的新型滑軌輸送帶系統將為未來兩代汽車提供輕松自如的車身輸送過程。

熱點內容
app什麼情況下找不到伺服器 發布:2025-05-12 15:46:25 瀏覽:714
php跳過if 發布:2025-05-12 15:34:29 瀏覽:467
不定時演算法 發布:2025-05-12 15:30:16 瀏覽:131
c語言延時1ms程序 發布:2025-05-12 15:01:30 瀏覽:166
動物園靈長類動物配置什麼植物 發布:2025-05-12 14:49:59 瀏覽:737
wifi密碼設置什麼好 發布:2025-05-12 14:49:17 瀏覽:149
三位數乘兩位數速演算法 發布:2025-05-12 13:05:48 瀏覽:399
暴風影音緩存在哪裡 發布:2025-05-12 12:42:03 瀏覽:544
access資料庫exe 發布:2025-05-12 12:39:04 瀏覽:632
五開的配置是什麼 發布:2025-05-12 12:36:37 瀏覽:366