版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 VB與PLC之實(shí)時(shí)控制系統(tǒng) 詹金萬、陳嘉龍一、 前言隨著IT產(chǎn)業(yè)的進(jìn)步及因特網(wǎng)的發(fā)展,傳統(tǒng)工業(yè)控制所使用之PLC控制器,具有高度的穩(wěn)定性及抗噪聲的特性且配線容易及價(jià)格便宜,因此被大量應(yīng)用在自動(dòng)化的場(chǎng)所,已由單機(jī)操作朝向網(wǎng)絡(luò)控制化發(fā)展,本文在探討網(wǎng)絡(luò)控制化的核心技術(shù),使PC藉由RS-232通訊協(xié)議(注)控制PLC(如圖一),并透過VB程序語言,達(dá)到遠(yuǎn)程控制及網(wǎng)絡(luò)自動(dòng)化控制的功能。本文以手動(dòng)/自動(dòng)紅綠燈控制為主題,所使用之PLC為國(guó)內(nèi)永宏電機(jī)公司所制FB-PLC,內(nèi)含通訊模塊,因此不需額外增購(gòu),且可由該公司網(wǎng)站免費(fèi)下載及更新階梯圖發(fā)展軟件(Winproladder)。二、 FB-PLCPC主系統(tǒng)
2、(Master)PLC仆系統(tǒng)(Slave)命令訊息RS-232響應(yīng)訊息圖一通訊協(xié)議FB-PLC藉由RS-232與PLC取得接口的傳輸,其傳輸格式(注)如圖二所示,以起始字符(ASCII 02H)與結(jié)束字符(ASCII 03H)作為整個(gè)命令傳輸及響應(yīng)訊息的傳輸封包,F(xiàn)B-PLC總計(jì)提供15種命令格式(ASCII 40H4EH),當(dāng)主系統(tǒng)將命令傳至PLC后,PLC將依據(jù)命令自動(dòng)回傳所對(duì)應(yīng)的訊息,如圖三所示起始字符仆站號(hào)碼命令號(hào)碼本文資料偵誤值checksum結(jié)束字符0500個(gè)ASCII字符圖二范例:將PLC啟動(dòng)(RUN)Master命令STX(02H)0(30H)1(31H)4(34H)1(31H
3、)1(31H)F(46H)9(39H)ETX(03H)PLC回應(yīng)STX(02H)0(30H)1(31H)4(34H)1(31H)0(30H)F(46H)8(38H)ETX(03H)圖三三手動(dòng)/自動(dòng) 紅綠燈控制階梯圖程序利用緩存器R0,R4作為綠燈時(shí)間的計(jì)數(shù)器,R1,R2作為綠燈閃爍次數(shù)及閃爍時(shí)間的計(jì)數(shù)器,R3作為黃燈停留時(shí)間計(jì)數(shù)器,Y0、Y1、Y2分別代表東西向紅、黃、綠三個(gè)燈,Y3、Y4、Y5分別代表南北向紅、黃、綠三個(gè)燈。利用輸入X2作手動(dòng)自動(dòng)的切換控制。當(dāng)PLC處于自動(dòng)模式時(shí),綠燈交換分別由緩存器R0、R4控制;當(dāng)PLC處于手動(dòng)模式時(shí),由輸入X1決定綠燈交換程序。紅綠燈階梯圖的設(shè)計(jì)程序如
4、圖四所示。 圖四手動(dòng)自動(dòng)紅綠燈控制階梯圖程序四、 VB 實(shí)時(shí)監(jiān)程序架構(gòu)及程序設(shè)計(jì)PC藉由RS232與PLC取得聯(lián)機(jī),傳送速度設(shè)定為9600bps,整個(gè)聯(lián)機(jī)設(shè)定請(qǐng)參考VB程序Form_Load()段。實(shí)時(shí)監(jiān)控畫面設(shè)計(jì)如圖五所示,當(dāng)執(zhí)行實(shí)時(shí)偵測(cè)狀態(tài)按鈕時(shí),桌面將呈現(xiàn)如圖六圖九所示實(shí)時(shí)狀態(tài)圖,狀態(tài)的偵測(cè)采用輪詢(polling)方式,依序讀取PLC輸出及輸入的實(shí)時(shí)狀態(tài),程序執(zhí)行請(qǐng)參考VB程序SendFrame(Data, No)段;執(zhí)行參數(shù)傳遞按鈕時(shí),桌面將呈現(xiàn)如圖十畫面,當(dāng)使用者修改參數(shù)后,執(zhí)行傳遞參數(shù)按鈕,PLC 將依據(jù)新的數(shù)據(jù)執(zhí)行其程序,程序執(zhí)行請(qǐng)參考VB程序Send_Ref_Click()段
5、。另傳送命令按鈕提供個(gè)別參數(shù)的讀取和設(shè)定及PLC執(zhí)行程序的加載和存盤等多項(xiàng)功能,桌面呈現(xiàn)如圖十一畫面,程序執(zhí)行請(qǐng)參考VB程序SendCmd_Click()段。 圖五 實(shí)時(shí)監(jiān)控畫面設(shè)計(jì) 圖六東西向綠燈Y0監(jiān)控狀態(tài) 圖七東西向黃燈Y1監(jiān)控狀態(tài) 圖八南北向綠燈Y3監(jiān)控狀態(tài) 圖十參數(shù)設(shè)定傳遞畫面 圖九南北向黃燈Y4監(jiān)控狀態(tài) 圖十一 個(gè)別參數(shù)命令的傳送選擇畫面五、結(jié)論隨著因特網(wǎng)的普及,遠(yuǎn)程監(jiān)控已是必然的趨勢(shì),本專題所提供PC與FB-PLC間的聯(lián)機(jī),僅需在VB程序中加入因特網(wǎng)對(duì)象即可達(dá)到Internet的遠(yuǎn)距控制,亦可透過RS485接口達(dá)到遠(yuǎn)程實(shí)時(shí)監(jiān)控。六、參考數(shù)據(jù):“Vb與 8051串行傳送之研制”國(guó)立
6、瑞芳高工90年教師專題研究:“FB-系列RS-232通訊協(xié)議”永宏電機(jī)股份有限公司七、VB 程序代碼Form1程序代碼如下:Dim Status1(15) 'Input X接點(diǎn)的狀態(tài)Dim Status2(12) 'Output Y接點(diǎn)的狀態(tài)Dim bx(15) 'X接點(diǎn)狀態(tài)Dim by(12) 'Y接點(diǎn)狀態(tài)Dim RegDim flag '啟動(dòng)旗號(hào)Dim flag1 '由計(jì)算機(jī)讀出PLC緩存器程序旗號(hào) 命令"4A"程序Dim flag2 '由計(jì)算機(jī)寫入PLC緩存器程序旗號(hào) 命令"4B"程序Dim
7、page_no '緩存器頁數(shù)Public Sub SendFrame(Data, No) '傳送通訊訊息格式()子程序 Select Case No Case 0: Check = Calculate_LRC(Data, 0) '計(jì)算LRC值 sendtxt = Chr$(&H2) & Trim(ClientNo) & Trim(CmdNo) & Trim(Data) & Trim(Check) & Chr$(&H3) '開頭字符+仆站號(hào)碼+命令號(hào)碼+本文數(shù)據(jù)+偵誤值+結(jié)尾字符 Case 1: Check
8、= Calculate_LRC(Data, 1) '計(jì)算LRC值 sendtxt = Chr$(&H2) & Trim(ClientNo) & Trim(Data) & Trim(Check) & Chr$(&H3) '開頭字符+仆站號(hào)碼+本文數(shù)據(jù)+偵誤值+結(jié)尾字符 Case 2: sendtxt = Chr$(&H2) & Trim(ClientNo) & Trim(Data) & Trim(Check_RegText) & Chr(&H3) '開頭字符+本文數(shù)據(jù)+結(jié)尾字符
9、 End Select MSComm.Output = sendtxt '透過RS-232送出End SubPublic Function Calculate_LRC(Data, No) As String '計(jì)算LRC值()子程序 Select Case No Case 0: LRC = 2 + Asc(Left(ClientNo, 1) + Asc(Mid(ClientNo, 2, 1) + Asc(Left(CmdNo, 1) + Asc(Mid(CmdNo, 2, 1) '包含開頭字符Chr$(&H2)、仆站號(hào)碼與命令碼 Case 1: LRC = 2
10、+ Asc(Left(ClientNo, 1) + Asc(Mid(ClientNo, 2, 1) End Select For i = 1 To Len(Data) LRC = LRC + Asc(Mid(Data, i, 1) '將Data一次取一字符加入LRC中 Next LRC_Remain = LRC Mod 16 '取余數(shù) LRC的個(gè)位數(shù) LRC_Quotient = LRC 16 '取商數(shù) LRC_Quotient = LRC_Quotient Mod 16 'LRC的十位數(shù) Calculate_LRC = Hex(LRC_Quotient) &a
11、mp; Hex(LRC_Remain) '回傳十六進(jìn)制值End FunctionPrivate Sub B_Y_Click(Index As Integer) 'Y按鈕()子程序If Index = 0 Then '如果是第0個(gè)按鈕 If by(Index) = 1 Then '原先是High,就讓它變Low sendtxt = "424Y0000" '傳送字符串多補(bǔ)一個(gè)0 by(Index) = 0 '更改by(Index)內(nèi)容為L(zhǎng)ow的狀態(tài) Y接點(diǎn)狀態(tài) Else '原先是Low,就讓它變High sendtxt =
12、 "423Y0000" by(Index) = 1 '更改by(Index)內(nèi)容為High的狀態(tài) End IfElse '如果是第1第11個(gè)按鈕 If by(Index) = 1 Then sendtxt = "424Y000" & Format(Hex(Index), "#") '傳送字符串為兩位數(shù),不須補(bǔ)一個(gè)0 by(Index) = 0 Else sendtxt = "423Y000" & Format(Hex(Index), "#") by(Ind
13、ex) = 1 End IfEnd IfSendFrame sendtxt, 1 '傳送命令數(shù)據(jù)至RS-232End SubPrivate Sub CmdList_Click() '命單清單選擇()子程序 Select Case CmdList.ListIndex '依據(jù)命令清單來選擇命令 Case 0: CmdNo = "40" Case 1: CmdNo = "41" Case 2: CmdNo = "42" Case 3: CmdNo = "43" Case 4: CmdNo = &q
14、uot;44" Case 5: CmdNo = "45" Case 6: CmdNo = "46" Case 7: CmdNo = "47" Case 8: CmdNo = "48" Case 9: CmdNo = "49" Case 10: CmdNo = "4A" Case 11: CmdNo = "4B" Case 12: CmdNo = "4C" Case 13: CmdNo = "4D" Case
15、 14: CmdNo = "4E" End SelectEnd SubPrivate Sub CmdNo_Change() '命令號(hào)碼改變()子程序 Select Case CmdNo.Text '依據(jù)選擇命令顯示命令清單 Case "40": CmdList.ListIndex = 0 Case "41": CmdList.ListIndex = 1 Case "42": CmdList.ListIndex = 2 Case "43": CmdList.ListIndex =
16、3 Case "44": CmdList.ListIndex = 4 Case "45": CmdList.ListIndex = 5 Case "46": CmdList.ListIndex = 6 Case "47": CmdList.ListIndex = 7 Case "48": CmdList.ListIndex = 8 Case "49": CmdList.ListIndex = 9 Case "4A": CmdList.ListIndex =
17、 10 Case "4B": CmdList.ListIndex = 11 Case "4C": CmdList.ListIndex = 12 Case "4D": CmdList.ListIndex = 13 Case "4E": CmdList.ListIndex = 14 Case Else: MsgBox "無此命令!", vbCritical, "錯(cuò)誤!" End SelectEnd SubPrivate Sub Command1_Click() Form1.Hid
18、e Form2.ShowEnd SubPrivate Sub Connect_Click() '同步狀態(tài)偵測(cè)()子程序 flag = 1 '設(shè)定啟動(dòng)旗號(hào) Connect.Enabled = False '同步狀態(tài)偵測(cè)按鈕失效 Do DoEvents SendFrame "440CY0000", 1 '要求回傳Y0000Y000B共12個(gè)接點(diǎn)狀態(tài) For i = 0 To 10 '延遲時(shí)間 DoEvents Next SendFrame "4410X0000", 1 '要求回傳X0000X0010共16個(gè)接點(diǎn)
19、狀 Loop While (flag = 1) '重復(fù)執(zhí)行回傳X與Y接點(diǎn)狀態(tài),直到啟動(dòng)旗號(hào)被停止為止End SubPrivate Sub Form_Activate() '窗體啟用()子程序 CmdList.ListIndex = 1 '預(yù)設(shè)命令為"PLC執(zhí)行控制"End SubPrivate Sub RegText_Change() 'RegText改變()子程序 Check_RegText = Calculate_LRC(RegText, 1) '計(jì)算LRC值顯示在Check_RegText上End SubPrivate Sub
20、SendCmd_Click() '傳送()子程序 If SendData = "" Then MsgBox "傳送數(shù)據(jù)不可空白!", vbCritical, "錯(cuò)誤!" Else CheckText = Calculate_LRC(SendData, 0) '計(jì)算LRC值顯示在檢查碼上 SendFrame SendData, 0 '傳送數(shù)據(jù) End IfEnd SubPrivate Sub ClearData_Click() '清除()子程序 For i = 0 To 15 bx(i) = 0 InpX
21、(i).BackColor = RGB(255, 255, 255) '接點(diǎn)全部OFF,顯示白色 Next For i = 0 To 11 by(i) = 0 OutY(i).BackColor = RGB(255, 255, 255) '接點(diǎn)全部OFF,顯示白色 NextEnd SubPrivate Sub EndCmd_Click() '結(jié)束()子程序 If MSComm.PortOpen = True Then MSComm.PortOpen = False '關(guān)閉通訊端口 End If End '程序結(jié)束End SubPrivate Sub Fo
22、rm_Load() '窗體加載()子程序 MSComm.CommPort = 1 '指定COM1作為通訊端口 MSComm.Settings = "9600,e,7,1" '設(shè)定通訊協(xié)議的格式 MSComm.PortOpen = True '開起通訊端口 MSComm.RThreshold = 1 '設(shè)定輸入緩沖區(qū)接到一個(gè)字,即起動(dòng)接收事件(OnComm) MSComm.InputLen = 0 '設(shè)定每次讀取輸入緩沖區(qū)的數(shù)據(jù)的長(zhǎng)度,0表示每次讀取所有數(shù)據(jù) MSComm.RTSEnable = True '使 Requ
23、est To Send (RTS) 線有效。 '一般情況下,由計(jì)算機(jī)傳送 RTS 信號(hào)到調(diào)制解調(diào)器,以請(qǐng)示準(zhǔn)許傳送數(shù)據(jù) flag = 1 '啟動(dòng)旗號(hào) flag1 = 0 '設(shè)定讀出PLC緩存器程序旗號(hào) flag2 = 1 '設(shè)定寫入PLC緩存器程序旗號(hào)End Sub Public Sub MSComm_OnComm() 'RS-232接收()子程序 Do buffer = buffer & MSComm.Input '一直接收字符串,直到收到結(jié)尾字符為止 Loop Until InStr(buffer, Chr(&H3) If I
24、nStr(buffer, Chr(&H2) Then buffer = Right(buffer, Len(buffer) - 1) '去除開頭字符 End If If InStr(buffer, Chr(&H3) Then buffer = Mid(buffer, 1, InStr(1, buffer, Chr(&H3), 1) - 1) '去除結(jié)尾字符 End If Select Case Mid(buffer, 3, 2) '判別命令碼 Case "40": ' "PLC系統(tǒng)狀態(tài)" Case
25、"41": ' "PLC之RUN/STOP控制" Case "42": ' "單一個(gè)單點(diǎn)之運(yùn)作控制" Case "43": ' "連續(xù)多個(gè)單點(diǎn)之抑/致能狀態(tài)讀取" Case "44": ' "連續(xù)多個(gè)單點(diǎn)之狀態(tài)讀取" '顯示狀態(tài)值 XStatus = "" '清除XStatus內(nèi)容 YStatus = "" '清除YStatus內(nèi)容 If L
26、en(buffer) = 23 Then '接收到 Input X 的內(nèi)容 For i = 0 To 15 '015共16個(gè)輸入端 XStatus = XStatus & Mid(buffer, 6 + i, 1) '將16個(gè)接點(diǎn)的ON/OFF狀態(tài)顯示在XStatus上 If Mid(XStatus, i + 1, 1) = 1 Then InpX(i).BackColor = RGB(255, 0, 0) '如果接點(diǎn)為ON,顯示紅色 bx(i) = 1 Else InpX(i).BackColor = RGB(255, 255, 255) '如
27、果接點(diǎn)為OFF,顯示白色 bx(0) = 0 End If Next ElseIf Len(buffer) = 19 Then '接收到 Output Y 的內(nèi)容 For i = 0 To 11 '011共12個(gè)輸出端 YStatus = YStatus & Mid(buffer, 6 + i, 1) '將12個(gè)接點(diǎn)的ON/OFF狀態(tài)顯示在YStatus上 If Mid(YStatus, i + 1, 1) = 1 Then OutY(i).BackColor = RGB(255, 0, 0) '如果接點(diǎn)為ON,顯示紅色 by(i) = 1 Else O
28、utY(i).BackColor = RGB(255, 255, 255) '如果接點(diǎn)為OFF,顯示白色 by(i) = 0 End If Next End If Case "45": ' "連續(xù)多個(gè)單點(diǎn)之狀態(tài)寫入" Case "46": ' "連續(xù)多個(gè)緩存器之?dāng)?shù)據(jù)讀取" Case "47": ' "連續(xù)多個(gè)緩存器之?dāng)?shù)據(jù)寫入" Case "48": ' "任意單點(diǎn)/緩存器混合之狀態(tài)/數(shù)據(jù)讀取" C
29、ase "49": ' "任意單點(diǎn)/緩存器混合之狀態(tài)/數(shù)據(jù)寫入" Case "4A": ' "程序存盤" Reg = buffer '顯示緩存器內(nèi)容存入Reg flag1 = 1 '設(shè)定讀出緩存器旗標(biāo),以利Read_PLC_Click()子程序執(zhí)行 Case "4B": ' "程序加載" flag2 = 1 '設(shè)定寫入緩存器旗標(biāo),以利Write_PLC_Click()子程序執(zhí)行 Case "4C": '
30、; "緩存器數(shù)據(jù)存盤" Case "4D": ' "緩存器數(shù)據(jù)加載" Case "4E": ' "測(cè)試回傳" Case Else: ' "未知命令" & Mid(buffer, 3, 2) & vbCrLf & buffer End SelectEnd SubPrivate Sub Read_PLC_Click() '讀取PLC()子程序 FileDlg.Filter = "*.txt" '預(yù)
31、設(shè)擴(kuò)展名為*.txt FileDlg.ShowSave '顯示儲(chǔ)存檔案對(duì)話盒 fn = FileDlg.FileName '指定檔名fn On Error GoTo err '如有錯(cuò)誤發(fā)生,跳至錯(cuò)誤處理 Open fn For Append As #1 '將讀出的緩存器內(nèi)容存盤 For page_no = 0 To 127 '緩存器共128頁 RegTxt = "" '每次清除轉(zhuǎn)換后要存檔的Reg內(nèi)容 SendFrame "4A" & Format(Hex(page_no), "#&quo
32、t;), 1 Do Until flag1 = 1 '直到計(jì)算機(jī)讀出PLC緩存器程序旗號(hào)為止 DoEvents Loop For i = 3 To Len(Reg) - 2 '從頭開始至偵誤碼前結(jié)束 If i = 4 Then RegTxt = RegTxt & "B" '將命令"4A"改成"4B" ElseIf i = 5 Then If page_no < 16 Then RegTxt = RegTxt & "0" & Hex(page_no) '少
33、于兩碼的,補(bǔ)一位數(shù)的"0" Else RegTxt = RegTxt & Hex(page_no) '本來就是兩碼的,不須補(bǔ)"0" End If Else RegTxt = RegTxt & Mid(Reg, i, 1) '將讀取進(jìn)來的RegText轉(zhuǎn)換成要存檔的Reg End If Next RegText = RegTxt '顯示在RegText上 Write #1, RegText '寫入檔案 flag1 = 0 '清除旗號(hào),等待下次再執(zhí)行 Nexterr: '錯(cuò)誤處理 Close #
34、1 '關(guān)閉檔案End SubPrivate Sub RunCmd_Click() '執(zhí)行()子程序If MSComm.PortOpen = False Then MSComm.PortOpen = TrueEnd If RunCmd.Enabled = False '執(zhí)行按鈕失效 StopCmd.Enabled = True '停止按鈕有效 Connect.Enabled = True '同步狀態(tài)偵測(cè)按鈕有效 SendFrame "411", 1 '傳送命令 flag = 1 '設(shè)定啟動(dòng)旗號(hào),執(zhí)行循環(huán) End SubP
35、rivate Sub SendData_Change() '傳送數(shù)據(jù)改變()子程序 CheckSum = Calculate_LRC(SendData, 0) '計(jì)算檢查碼顯示在CheckSum上End SubPrivate Sub StopCmd_Click() '停止()子程序 RunCmd.Enabled = True '執(zhí)行按鈕有效 StopCmd.Enabled = False '停止按鈕失效 Connect.Enabled = False '同步狀態(tài)偵測(cè)按鈕有效 flag = 0 '停止啟動(dòng)旗號(hào),跳離執(zhí)行循環(huán) For i =
36、0 To 4 SendFrame "410", 1 '為防止無法立即關(guān)閉,傳送三次命令,強(qiáng)迫停止 Next For i = 0 To 11 by(i) = 0 OutY(i).BackColor = RGB(255, 255, 255) '接點(diǎn)全部OFF,顯示白色 NextEnd SubForm2程序代碼如下:Dim R0, R1, R2, R3, R4Private Sub BackMain_Click() Unload Me Form1.ShowEnd SubPrivate Sub Default_Ref_Click() EW_GreenTime = 2
37、5 GreenFlashCount = 2 GreenFlashTime = 4 YellowTime = 20 SN_GreenTime = 25End SubPrivate Sub EW_GreenTime_Change() VScrollGT_EW.Value = EW_GreenTime End SubPrivate Sub Form_Activate() Default_Ref_ClickEnd SubPrivate Sub Form_Load() VScrollGFT = GreenFlashTime VScrollGFC = GreenFlashCount VScrollYT = Yel
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年酒吧經(jīng)營(yíng)合作合同3篇
- 2024民政廳制定離婚財(cái)產(chǎn)分配合同書3篇
- 2025版KTV裝修工程款項(xiàng)支付與驗(yàn)收合同范本3篇
- 2024版互聯(lián)網(wǎng)金融信息服務(wù)合同
- 2024年電子信息產(chǎn)品設(shè)計(jì)勞務(wù)分包合同模板3篇
- 2024商業(yè)新物業(yè)管理合同-商業(yè)物業(yè)管理合同續(xù)簽與終止條款3篇
- 2024年瑪雅特色房屋租賃與社區(qū)共享空間開發(fā)合同3篇
- 2024年環(huán)保型城市公交車采購(gòu)與運(yùn)營(yíng)合同
- 2024年綠色交通貸款委托合同模板3篇
- 2025年度文化創(chuàng)意產(chǎn)業(yè)項(xiàng)目承包協(xié)議合同范本3篇
- 《蘇寧電器的內(nèi)部控制與評(píng)價(jià)研究》18000字(論文)
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實(shí)踐指導(dǎo)材料之12:“6策劃-6.1應(yīng)對(duì)風(fēng)險(xiǎn)和機(jī)遇的措施”(雷澤佳編制-2025B0)
- 《IT企業(yè)介紹》課件
- 《臨床檢驗(yàn)儀器與技術(shù)》考試復(fù)習(xí)題庫(含答案)
- 04S519小型排水構(gòu)筑物(含隔油池)圖集
- 三年級(jí)上冊(cè)《勞動(dòng)》期末試卷及答案
- 人工智能概論P(yáng)PT全套完整教學(xué)課件
- word 公章 模板
- T∕ZSQX 008-2020 建設(shè)工程全過程質(zhì)量行為導(dǎo)則
- ISO-IEC17025-2017實(shí)驗(yàn)室管理體系全套程序文件
- 深圳智能水表項(xiàng)目商業(yè)計(jì)劃書_參考模板
評(píng)論
0/150
提交評(píng)論