Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
552,51 KB
Nội dung
KỸTHUẬTLẬPTRÌNH Chương trình người dùng thường chia nhỏ thành khối logic theo kiểu chương trình cấu trúc, giúp cho việc lậptrình sửa lỗi thuận tiện Có nhiều loại khối logic: Khối tổ chức OB (Organization blocks) Khối hàm hệ thống SFB (System function blocks) hàm hệ thống SFC (system functions) tích hợp PLC Khối hàm FB (Function blocks) thư viện hay người dùng tự viết Hàm FC (Functions) thư viện hay người dùng tự viết Khối liệu Instance (Instance Data Blocks ) liên kết với FB/SFB Khối liệu chia xẻ (Shared Data Blocks ) Khối tổ chức OB giao diện chương trình người dùng hệ điều hàmh PLC OB gọi hệ điều hành theo chu kỳ hay có ngắt, có cố hay khởi động PLC Có nhiều khối OB có ưu tiên khác nhau, khối OB có số ưu tiên cao ngắt khối OB số ưu tiên thấp Tuỳ theo loại CPU, số lượng khối OB sử dụng khác nhau, bảng sau liệt kê loại OB Loại OB Chương trình OB1 Ngắt thời gian OB10, OB11, OB12, OB13 OB14, OB15, OB16, OB17 Ngắt trì hoãn OB20 OB21 OB22 OB23 Ngắt chu kỳ OB30 OB31 OB32 OB33 OB34 OB35 OB36 OB37 OB38 Ý nghĩa Ưu tiên Được gọi kết thúc khởi động hay kết thúc OB1, thực theo chu kỳ Ngắt theo thời gian ngày, tháng, năm Ngắt chu kỳ (mặc định 5s) Ngắt chu kỳ (mặc định 2s) Ngắt chu kỳ (mặc định 1s) Ngắt chu kỳ (mặc định 500ms) Ngắt chu kỳ (mặc định 200ms) Ngắt chu kỳ (mặc định 100ms) Ngắt chu kỳ (mặc định 50ms) Ngắt chu kỳ (mặc định 20ms) Ngắt chu kỳ (mặc định 10ms) 10 11 12 13 14 15 Ngắt cứng OB40 OB41 OB42 OB43 OB44 OB45 OB46 OB47 OB60 OB70 OB72 OB 73 Sự cố bất đồng OB80 OB81 OB82 OB83 OB84 OB85 OB86 OB87 OB90 OB100 OB101 OB102 Sự cố đồng OB121 OB122 Gọi SFC35 "MP_ALM" Lỗi I/O redundancy ( H CPU) Lỗi CPU redundancy (H CPU) Lỗi Communication redundancy (H CPU) 16 17 18 19 20 21 22 23 25 25 28 25 Sự cố chu kỳ quét Lỗi nguồn Ngắt chẩn đoán Ngắt thêm bớt module Lỗi phần cứng CPU Lỗi chương trình Lỗi module mở rộng Lỗi truyền thông Warm or cold restart or delete a block being executed in OB90 or load an OB90 on the CPU or terminate OB90 26, 28 Khởi động ấm Khởi động nóng Khởi động lạnh 27 29, Ưu tiên tác nhân gây cố Sai lậptrình Sai I/O 1/ Khối OB1 OB1 gọi sau kết thúc trình khởi động sau kết thúc nó, OB trừ OB90 ngắt OB1 Khi OB1 thực hiện, hệ điều hành gởi liệu toàn cục Trước gọi lại OB1, hệ điều hành chuyển nhớ đệm module xuất , cập nhật đệm nhập nhận liệu toàn cục Khi thực OB1, chương trình khối thực hiện, liệu xuất module xuất cấp tạm nhớ Chương trình OB1 gọi hàm hay khối hàm Thời gian thực OB1 gọi thời gian quét, hệ điều hành ấn định thời gian quét tối đa (150ms) tối thiểu, cài đặt Step Nếu chu kỳ quét kéo dài gọi OB80 hay chuyển sang STOP, chu kỳ quét ngắn thêm trì hoãn hay gọi OB90 OB1 gồm phần mã chương trình, người dùng viết; bảng biến cục (local block) gọi bảng khai báo biến (variable declaration table) gồm 20 byte Cột thứ địa vùng biến cục bộ, cột thứ hai khai báo loại biến, temp nghĩa tạm thời, giá trị biến thay đổi sau vòng quét OB, cột thứ ba tên liệu, có ý nghĩa sau (giải thích cột thích 6): OB1_EV_CLASS: giá trị B#16#11 có nghĩa OB1 tích cực OB1_SCAN_1: B#16#01: hoàn tất warm restart B#16#02: hoàn tất hot restart B#16#03: hoàn tất chu kỳ B#16#04: hoàn tất cold restart OB1_PRIORITY: giá trị OB1_OB_NUMBR: số OB OB1_RESERVED_1: dự trữ OB1_RESERVED_2: dự trữ OB1_PREV_CYCLE: thời gian vòng quét trước (ms) OB1_MIN_CYCLE: thời gian vòng quét ngắn OB1_MAX_CYCLE: thời gian vòng quét dài OB1_DATE_TIME: ngày OB1 bắt đầu thực (8 byte) Các giá trị người dùng không thay đổi được, người dùng thêm biến vào từ địa 20.0 trở đi, biến biến tạm, thay đổi sau vòng quét Các biến thêm vào sử dụng cho lậptrình gọi chương trình FC, SFC, FB, SFB Chương trình STEP dùng để lậptrình cho PLC S7-300, S7-400 Chương trình có version 5.0 dùng cho Win 98, Version 5.1 5.3 dùng cho Win XP Khi kích chuột vào biểu tượng Simatic Manager xuất cửa sổ Hình , bấm Next để chọn loại CPU Bấm tiếp Next để chọn khối OB, bắt buộc OB1, OB khác thêm vào sau Chọn cách lậptrình STL, LAD hay FBD, lúc lậptrình tuỳ ý thay đổi Bấm tiếp Next đặt tên cho Project, sau bấm Finish, xuất cửa sổ lậptrình Nửa cửa sổ bên trái xếp dạng thư mục, kích chuôt vào để mở mục Bấm vào dòng SIMATIC 300 STATION bên trái bấm tiếp vào Hardware bên phải để đặt cấu hình phần cứng PLC (công việc thực sau) Gỉa sử cấu hình đơn giản gồm module DI/DO, AI/AO, ta kích chuột vào dòng SIMATIC 300, SM- 300 , chọn module phù hợp, dùng chuột kéo vào slot Station từ số trở đi, (slot dùng cho module IM), sau vào menu Station – Save Close Ta trở lại vấn đề cấu hình mục Trở lại Project, bấm vào mục Blocks, ta thấy xuất OB1, bấm vào OB1 lậptrình tuyến tính, nghĩa không dùng khối logic FC, FB tự tạo Bấm vào menu View, chọn STL, LAD, FBD chọn cách lậptrình Khi lậptrình ta dùng địa tuyệt đối ( I0.0, MW2, T5…) hay địa ký hiệu (Start, Speed, Delay…) Địa ký hiệu giúp chương trình dễ hiểu Có hai loại ký hiệu cục (biến cục bộ) ký hiệu toàn cục (hay chia xẻ) , ký hiệu cục khai báo bảng khai báo biến khối có ý nghĩa phạm vi khối đó, ký hiệu toàn cục khai báo bảng ký hiệu Symbols, có ý nghĩa toàn khối project Việc khai báo ký hiệu toàn cục thực trước hay sau viết mã Khối logíc có tối đa 999 network, network có tối đa 2000 hàng , hàng gồm nhãn , lệnh, địa thích (sau //) Thủ tục lậpký hiệu toàn cục sau: bấm chuột vào đối tượng Symbols (Xem hình ) Các biến ký hiệu đưa vào dòng một, dài tối đa 24 ký tự chữ số, ký tự đặc biệt, trừ dấu nháy “ , không phân biệt chữ hoa chữ thường Bảng ký hiệu chứa tối đa 16380 ký hiệu Sau biên tập xong, vào menu Symbol Table- Save để lưu bảng Vào cửa sổ biên tập khối chọn View- Display with - Symbolic Representation để nhìn thấy địa ký hiệu chương trình, ký hiệu toàn cục đóng khung dấu “, ký hiệu cục có dấu # đứng trước Nếu dùng ViewDisplay with- Symbol Information hiển thị ký hiệu, địa tuyệt đối , thích kèm Các loại biến cho phép trình bày bảng , tầm địa cụ thể phụ thuộc loại CPU IEC Description I IB IW Input bit Input byte Input word ID Input double word Q Output bit QB Output byte Output word QW QD Output double word M Memory bit Memory byte MB Memory word MW Memory double MD word Peripheral input PIB byte Peripheral output Data Type Address Range BOOL 0.0 65535.7 BYTE, CHAR 65535 WORD, INT, S5TIME, 65534 DATE DWORD, DINT, 65532 REAL, TOD, TIME BOOL 0.0 65535.7 BYTE, CHAR 65535 WORD, INT, S5TIME, 65534 DATE DWORD, DINT, 65532 REAL, TOD, TIME BOOL 0.0 65535.7 BYTE, CHAR 65535 WORD, INT, S5TIME, 65534 DATE DWORD, DINT, 65532 REAL, TOD, TIME BYTE, CHAR 65535 BYTE, CHAR 65535 1024 PQB byte Peripheral input PIW word Peripheral output PQ word W Peripheral input PID double word Peripheral output PQD double word T Timer C Counter OB Organization block FB Function block DB Data block FC Function System function SFB block System function SFC Variable table VA T User defined data UD type T WORD, INT, S5TIME, 65534 DATE WORD, INT, S5TIME, 65534 DATE DWORD, DINT, REAL, TOD, TIME DWORD, DINT, REAL, TOD, TIME TIMER COUNTER OB FB DB, FB, SFB, UDT FC SFB 65532 SFC 65535 65532 65535 65535 65535 65535 65535 65535 65535 511 511 1023 1023 65535 UDT 65535 Chương trình OB sử dụng biến tạm hình thức ký hiệu (có dấu # trước) hay địa L vùng bảng khai báo biến khối , địa 20.0 trở Ví dụ1: đoạn chương trình sau sử dụng biến tạm Enable khai báo bảng biến cục bộ, địa 20.0, chuyển sang dạng STL, dùng thêm biến phụ L21.0 trống mà không cần khai báo bảng không dùng địa ký hiệu Ví dụ 2: lậptrình cho đèn hành, bình thường yêu cầu qua đường (I0.0, I0.1), đèn xanh xe (Q0.7) đèn đỏ hành (Q0.0) sáng Khi có yêu cầu đèn vàng xe (Q0.6) sáng 3s , sau đèn đỏ xe (Q0.5) sáng đèn xanh hành (Q0.1) sáng 10s, hết thời gian đèn đỏ hành đỏ xe sáng, sau 6s đèn vàng xe đỏ xe sáng sau s đèn xanh xe sáng , xóa yêu cầu qua đường A( A( O I 0.0 // Có yêu cầu qua đường khách hành O I 0.1 ) A T O M 0.0 ) AN T //xóa yêu cầu = M 0.0 // ghi nhận yêu cầu AN M cầu = Q A L SD A A( ON O ) = 0.0 0.7 M 0.0 S5T#3S T M 0.0 T T Q 0.6 A Q 0.5 L S5T#10S SD T A Q 0.5 AN T = Q 0.1 //Bật đèn xanh hành, thời gian 10s A M 0.0 A T L S5T#6S SD T //Thời gian s đỏ xe đỏ // yêu hành sáng A M 0.0 // đèn xanh xe sáng A( ON T O T ) ON M 0.0 = Q 0.0 // Bật đèn đỏ hành //Đèn vàng xe 3s A xe A L 10 M 0.0 T S5T#3S //Bật đèn đỏ vàng o Nút Emergency không tác động Động tắt vận tốc không đạt định mức sau khởi động 10s Có ba cảm biến mức dạng contact Cảm biến đầy thường đóng, bồn đầy hở Cảm biến mức tối thiểu thường hở , mực chất lỏng thấp đóng lại Cảm biến cạn, hở bồn cạn Van xả điều khiển từ bảng điều khiển Van xả hoạt động động trộn ngừng, cảm biến mức báo bồn chưa cạn, nút emergency không tác động Van xả đóng cảm biến mức báo bồn cạn Bảng điều khiển dùng để điều khiển báo trạng thái động cơ, van xả, báo mức bồn, báo bảo trì dừng khẩn cấp Có ba động lậptrình khối logic chung (Hình) Sáu ngõ vào hai nút nhấn Sart/Stop, nút nhấn Reset_Maint xóa đèn bảo trì, tín hiệu báo động chạy, ngừng hay báo có dòng chảy (Response), số hiệu Timer (Timer No) thời gian timer (Response_Time) Bốn ngõ báo lỗi (Fault), đèn báo động chạy, ngừng (Start_Dsp, Stop_Dsp), báo bảo trì (Maint), Tín hiệu vào/ra điều khiển Motor Ngoài biến Starts cho biết số lần khởi động động Khối logic lậptrình dạng khối hàm FB cần lưu trữ giá trị biến Các van điều khiển khối logic FC (Hình) Hai tín hiệu vào nút nhấn mở /đóng van (Open/ Close) Tín hiệu đèn báo trạng thái van ( Dsp_Open, Dsp_Closed) Tín hiệu vào/ điều khiển van (Valve) Khối lưu biến thực FC Cấu trúc chương trình Hình Chương trình OB1 gọi hàm FB1 điều khiển động cơ, có ba động ứng với ba khối liệu DB1, DB2, DB3 Hàm FC1 OB1 gọi điều khiển van Các khối FB FC phải lậptrình trước khối OB Vào cửa sổ Project –Symbols lập bảng ký hiệu cho biến (Bảng ) 17 Symbolic Name Address Data Type Feed_pump_A_start I0.0 BOOL Feed_pump_A_stop I0.1 BOOL Flow_A I0.2 BOOL Description Starts the feed pump for ingredient A Stops the feed pump for ingredient A Ingredient A flowing 18 Inlet_valve_A Feed_valve_A Feed_pump_A_on Q4.0 Q4.1 Q4.2 BOOL BOOL BOOL Feed_pump_A_off Q4.3 BOOL Feed_pump_A Q4.4 Feed_pump_A_fault Q4.5 Feed_pump_A_maint Q4.6 Feed_pump_B_start I0.3 Feed_pump_B_stop I0.4 Flow_B I0.5 Inlet_valve_B Q5.0 Feed_valve_B Q5.1 Feed_pump_B_on Q5.2 Feed_pump_B_off Q5.3 BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL Feed_pump_B Q5.4 Feed_pump_B_fault Q5.5 Feed_pump_B_maint Q5.6 Agitator_running I1.0 Agitator_start I1.1 Agitator_stop I1.2 Agitator Q8.0 Agitator_on Q8.1 Agitator_off Q8.2 Agitator_fault Q8.3 Agitator_maint Q8.4 Tank_below_max I1.3 Tank_above_min I1.4 Tank_not_empty I1.5 Tank_max_disp Q9.0 Tank_min_disp Q9.1 BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL Tank_empty_disp Drain_open Drain_closed Drain Drain_open_disp Drain_closed_disp EMER_STOP_off BOOL BOOL BOOL BOOL BOOL BOOL BOOL Q9.2 I0.6 I0.7 Q9.5 Q9.6 Q9.7 I1.6 Activates the inlet valve for ingredient A Activates the feed valve for ingredient A Lamp for ”feed pump ingredient A running" Lamp for ”feed pump ingredient A not running" Activates the feed pump for ingredient A Lamp for ”feed pump A fault" Lamp for ”feed pump A maintenance" Starts the feed pump for ingredient B Stops the feed pump for ingredient B Ingredient B flowing Activates the inlet valve for ingredient A Activates the feed valve for ingredient B Lamp for ”feed pump ingredient B running" Lamp for ”feed pump ingredient B not running" Activates the feed pump for ingredient B Lamp for ”feed pump B fault" Lamp for ”feed pump B maintenance" Response signal of the agitator motor Agitator start button Agitator stop button Activates the agitator Lamp for "agitator running" Lamp for "agitator not running" Lamp for ”agitator motor fault" Lamp for ”agitator motor maintenance" Sensor ”mixing tank not full" Sensor ”mixing tank above minimum level" Sensor ”mixing tank not empty" Lamp for "mixing tank full" Lamp for "mixing tank below minimum level" Lamp for "mixing tank empty" Button for opening the drain valve Button for closing the drain valve Activates the drain valve Lamp for "drain valve open" Lamp for "drain valve closed" EMERGENCY STOP switch 19 Reset_maint I1.7 BOOL Motor_block Valve_block DB_feed_pump_A DB_feed_pump_B DB_agitator FB1 FC1 DB1 DB2 DB3 FB1 FC1 FB1 FB1 FB1 Reset switch for the maintenance lamps on all motors FB for controlling pumps and motor FC for controlling the valves Instance DB for controlling feed pump A Instance DB for controlling feed pump B Instance DB for controlling the agitator motor 3.1 Lậptrình khối FB FB khối logíc với biến in, out, in_out, static temp, tạo bảng biến địa phương kèm Các biến in, out, in_ out tham số hìmh thức có địa cụ thể chương trình gọi truyền đến, biến static biến chương trình FB lưu lại khỏi khối FB, biến temp giá trị khỏi khối FB Kèm với FB khối liệu data block chứa biến in, out, in_ out static Có thể có nhiều data block cho FB FB dùng cho nhiệm vụ khác nhau, gọi instance data block Khi chương trình gọi FB cần phải kèm theo instance data block tương ứng Ta vào cửa sổ Project bấm chuột phải - Insert New Object – Function block thêm vào khối FB1 Bấm chuột vào khối FB1 để soạn chương trình cho khối Ta vào bảng khai báo biến để khai báo biến hình thức cho khối theo thứ tự in, out, in_out, static temp Với ví dụ trên, bảng biến FB1 “Motor_Block” sau: Address Declaration Name Type Initial Value 0.0 IN Start BOOL FALSE 0.1 IN Stop BOOL FALSE 0.2 IN Response BOOL FALSE 0.3 IN Reset_Maint BOOL FALSE 2.0 IN Timer_No TIMER 4.0 IN Response_Time S5TIME S5T#0MS 6.0 OUT Fault BOOL FALSE 6.1 OUT Start_Dsp BOOL FALSE 6.2 OUT Stop_Dsp BOOL FALSE 6.3 OUT Maint BOOL FALSE 8.0 IN_OUT Motor BOOL FALSE 10.0 STAT Time_bin WORD W#16#0 12.0 STAT Time_BCD WORD W#16#0 14.0 STAT Starts INT 16.0 STAT Start_Edge BOOL FALSE Các biến STAT Time_ bin Time_BCD lư u thời gian timer, Starts lưu số lần khởi động motor, 5000 báo bảo trì , Start_ Edge phục vụ cho lệnh lấy cạnh lên Network Start/stop and latching A( O #Start Network Stop lamp AN #Response = #Stop_Dsp 20 O #Motor ) AN #Stop = #Motor Network Startup monitoring A #Motor L #Response_Time SD #Timer_No AN #Motor R #Timer_No L #Timer_No T #Timer_bin LC #Timer_No T #Timer_BCD A #Timer_No AN #Response S #Fault R #Motor Network Start lamp and fault reset A #Response = #Start_Dsp R #Fault Network Counting the starts A #Motor FP #Start_Edge JCN lab1 L #Starts +1 T #Starts lab1: NOP Network Maintenance lamp L #Starts L 5000 >=I = #Maint Network Reset counter for number of starts A #Reset_Maint A #Maint JCN END L0 T #Starts END: NOP Thêm khối DB project với tên DB1, DB2, DB3 loại Instance DB thuộc FB1 Các biến DB1 tự tạo theo bảng khai báo biến khối FB1, gồm biến loại in, out,in_out stat, tương tự cho DB2 DB3 Khi khối FB gọi phải mở kèm theo DB tương ứng 21 3.2 Lậptrình khối FC Khối FC có biến hình thức in, out in_ out chương trình gọi cung cấp địa cụ thể, có biến temp sử dụng nội bộ, nhiên không bắt buộc phải dùng tất loại biến Khối FC nhớ nên liệu khỏi khối Ta thêm vào project khối FC1 khai báo biến bảng khai báo biến kèm theo Sau lậptrình cho FC1 Address Declaration Name Type Initial Value 0.0 IN Open BOOL FALSE 0.1 IN Close BOOL FALSE 2.0 OUT Dsp_Open BOOL FALSE 2.1 OUT Dsp_Closed BOOL FALSE 4.0 IN_OUT Valve BOOL FALSE Network Open/close and latching A( O #Open O #Valve ) AN #Close = #Valve Network Display "valve open" A #Valve = #Dsp_Open Network Display "valve closed" AN#Valve = #Dsp_Closed 22 Bước lậptrình cho OB1, ta khai báo biến cho OB1 từ địa 20 trở Address Declaration Name Type 0.0 TEMP OB1_EV_CLASS BYTE 1.0 TEMP OB1_SCAN1 BYTE 2.0 TEMP OB1_PRIORITY BYTE 3.0 TEMP OB1_OB_NUMBR BYTE 4.0 TEMP OB1_RESERVED_1 BYTE 5.0 TEMP OB1_RESERVED_2 BYTE 6.0 TEMP OB1_PREV_CYCLE INT 8.0 TEMP OB1_MIN_CYCLE INT 10.0 TEMP OB1_MAX_CYCLE INT 12.0 TEMP OB1_DATE_TIME DATE_AND_TIME 20.0 TEMP Enable_motor BOOL 20.1 TEMP Enable_valve BOOL 20.2 TEMP Start_fulfilled BOOL 20.3 TEMP Stop_fulfilled BOOL 20.4 TEMP Inlet_valve_A_open BOOL 20.5 TEMP Inlet_valve_A_closed BOOL Chương trình OB1 Network Interlocks for feed pump A Network Delaying the valve enable A "EMER_STOP_off" ingredient B A "Tank_below_max" A "Feed_pump_B" AN "Drain" L S5T#1S = #Enable_Motor SD T 15 AN "Feed_pump_B" Network Calling FB Motor for R T 15 ingredient A A "Feed_pump_A_start" A T 15 A #Enable_Motor = #Enable_Valve = #Start_Fulfilled Network Inlet valve control for A( ingredient B O "Feed_pump_A_stop" AN "Flow_B" ON #Enable_Motor AN "Feed_pump_B" ) = #Close_Valve_Fulfilled = #Stop_Fulfilled CALL "Valve_block" CALL "Motor_block", Open :=#Enable_Valve "DB_feed_pump_A" Close :=#Close_Valve_Fulfilled Start :=#Start_Fulfilled Dsp_Open :=#Inlet_Valve_B_Open Stop :=#Stop_Fullfilled Dsp_Closed:=#Inlet_Valve_B_Closed Response :="Flow_A" Valve :="Inlet_Valve_B" Reset_Maint :="Reset_maint" Timer_No :=T12 Network 10 Feed valve control for Reponse_Time:=S5T#7S ingredient B Fault :="Feed_pump_A_fault" AN "Flow_B" Start_Dsp :="Feed_pump_A_on" AN "Feed_pump_B" 23 Stop_Dsp :="Feed_pump_A_off" Maint :="Feed_pump_A_maint" Motor :="Feed_pump_A" Network Delaying the valve enable ingredient A A "Feed_pump_A" L S5T#1S SD T 13 AN "Feed_pump_A" R T 13 A T 13 = #Enable_Valve Network Inlet valve control for ingredient A AN "Flow_A" AN "Feed_pump_A" = #Close_Valve_Fulfilled CALL "Valve_block" Open :=#Enable_Valve Close :=#Close_Valve_Fulfilled Dsp_Open :=#Inlet_Valve_A_Open Dsp_Closed:=#Inlet_Valve_A_Closed Valve :="Inlet_Valve_A" Network Feed valve control for ingredient A AN"Flow_A" AN"Feed_pump_A" =#Close_Valve_Fulfilled CALL"Valve_block" Open:=#Enable_Valve Close:=#Close_Valve_Fulfilled Dsp_Open:=#Feed_Valve_A_Open Dsp_Closed:=#Feed_Valve_A_Closed Valve :="Feed_Valve_A" Network Interlocks for feed pump B A "EMER_STOP_off" A "Tank_below_max" AN "Drain" = "Enable_Motor Network Calling FB Motor for ingredient B A "Feed_pump_B_start" A #Enable_Motor = #Start_Fulfilled A( O "Feed_pump_B_stop" ON #Enable_Motor ) = #Close_Valve_Fulfilled CALL "Valve_block" Open :=#Enable_Valve Close :=#Close_Valve_Fulfilled Dsp_Open :=#Feed_Valve_B_Open Dsp_Closed:=#Feed_Valve_B_Closed Valve :="Feed_Valve_B" Network 11 Interlocks for agitator A "EMER_STOP_off" A "Tank_above_min" AN "Drain" = #Enable_Motor Network 12 Calling FB Motor for agitator A "Agitator_start" A #Enable_Motor = #Start_Fulfilled A( O "Agitator_stop" ON #Enable_Motor ) = #Stop_Fulfilled CALL "Motor_block", "DB_Agitator" Start :=#Start_Fulfilled Stop :=#Stop_Fullfilled Response :="Agitator_running" Reset_Maint :="Reset_maint" Timer_No :=T16 Reponse_Time:=S5T#10S Fault :="Agitator_fault" Start_Dsp :="Agitator_on" Stop_Dsp :="Agitator_off" Maint :="Agitator_maint" Motor :="Agitator" Network 13 Interlocks for drain valve A"EMER_STOP_off" A"Tank_not_empty" AN"Agitator" = "Enable_Valve Network 14 Drain valve control A "Drain_open" A #Enable_Valve = #Open_Drain A( O "Drain_closed" ON #Enable_Valve ) = #Close_Drain 24 = #Stop_Fulfilled CALL "Motor_block", "DB_feed_pump_B" Start :=#Start_Fulfilled Stop :=#Stop_Fullfilled Response :="Flow_B" Reset_Maint :="Reset_maint" Timer_No :=T14 Reponse_Time:=S5T#7S Fault :="Feed_pump_B_fault" Start_Dsp :="Feed_pump_B_on" Stop_Dsp :="Feed_pump_B_off" Maint :="Feed_pump_B_maint" Motor :="Feed_pump_B" CALL "Valve_block" Open :=#Open_Drain Close :=#Close_Drain Dsp_Open :="Drain_open_disp" Dsp_Closed :="Drain_closed_disp" Valve :="Drain" Network 15 Tank level display AN"Tank_below_max" ="Tank_max_disp" AN"Tank_above_min" ="Tank_min_disp" AN"Tank_not_empty" = "Tank_empty_disp" Bảng sau cho biết số lượng khối /kích thước loại cpu CPU OB1 DB 312 6KByte 63/6 KByte 313, 314 KByte 127/8 KByte 315 16 KByte 255/16KByte 316 16 KByte 511/16 KByte 318 64 KByte 2047/64 KByte 412 64 KByte 512/64 Kbyte 414, 416 64 KByte 4095/64 KByte 417 64 KByte 8192/64 KByte tổng cộng khối logic FB 32/6 KByte 128/8KByte 192/16KByte 256/16 KByte 1024/64 KByte 256/64Kbyte 2048/64 KByte 6144/64 KByte FC 32/6 KByte 128/8KByte 192/16KByte 256/16 KByte 1024/64 KByte 256/64Kbyte 2048/64 Kbyte 6144/64 KByte Sử dụng hàm thư viện Các hàm thư viện Siemens viết sẵn thuộc loại FC, FB, SFC, SFB giúp người dùng thuận tiện lậptrình Muốn dùng hàm thư viện khối logic ta mở khối logic ra, kích chuột vào chỗ gọi hàm thư viện, vào menu InsertProgram Elements - Libraries chọn hàm thư viện phù hợp bấm chuột kép vào đó, gõ CALL tên hàm thư viện ta nhớ tên hàm Lệnh gọi hàm thêm vào kèm theo biến in, out in_out cần trao đổi 25 Các hàm thư viện cần chuyển giá trị cho biến hình thức ta phải cung cấp cho hàm gọi theo qui định hàm thư viện Nếu Project có hàm FB, FC trùng tên với hàm thư viện cần phải đổi tên Thư viện chuẩn Step gồm có thư viện con: System Function Blocks: khối hàm hệ thống (SFB) hàm hệ thống (SFC) S5-S7 Converting Blocks: hàm chuyển đổi chương trìnhPLC S5 sang S7 TI-S7 Converting Blocks: hàm đa dụng IEC Function Blocks: hàm IEC Organization Blocks: khối tổ chức (OB) PID Control Blocks : hàm điều khiển PID Communication Blocks: hàm mạng Ngoài cài thêm hàm thư viện khác fuzzy control, neuro system, motion control 26 Người dùng tự viết thư viện gôm hàm thường dùng để tiện cho công việc Các bước tạo thư viện sau - Simatic Manager- File – New- Libraries đặt tên cho thư viện- OK - Muốn tạo hàm thư viện ta bấm File- Open- Libraries chọn tên thư viện –OK - Vào cửa sổ thư viện Thanh- bấm chuột phải- Insert New Objects- S7 Program - Đổi tên cho thư viện này, ví dụ Motion Control, sau mở thư viện copy vào hàm từ thư viện khác hay tự viết hàm 27 - Muốn bỏ thư viện vào Simatic Manager- File - Delete - Libraries chọn tên thư viện - OK Bảng hàm SFB SFC FC Bảng sau liệt kê hàm thư viện Một số hàm khảo sát chương sau No Short Name Function SFC SET_CLK Set System Clock SFC READ_CLK Read System Clock SFC SET_RTM Set Run-Time Meter SFC CTRL_RTM Start/Stop Run-Time Meter SFC READ_RTM Read Run-Time Meter SFC GADR_LGC Query Logical Address of a Channel SFC RD_SINFO Read OB Start Information SFC DP_PRAL Trigger a Hardware Interrupt on the DP Master SFC EN_MSG Enable Block-Related, Symbol-Related and Group Status Messages SFC 10 DIS_MSG Disable Block-Related, Symbol-Related and Group Status Messages SFC 11 DPSYC_FR Synchronize Groups of DP Slaves SFC 12 D_ACT_DP Deactivation and activation of DP slaves SFC 13 DPNRM_DGRead Diagnostic Data of a DP Slave (Slave Diagnostics) SFC 14 DPRD_DAT Read Consistent Data of a Standard DP Slave SFC 15 DPWR_DAT Write Consistent Data to a DP Standard Slave SFC 17 ALARM_SQ Generate Acknowledgeable Block-Related Messages SFC 18 ALARM_S Generate Permanently Acknowledged Block-Related Messages SFC 19 ALARM_SC Query the Acknowledgment Status of the last ALARM_SQ Entering State Message SFC 20 BLKMOV Copy Variables SFC 21 FILL Initialize a Memory Area SFC 22 CREAT_DB Create Data Block SFC 23 DEL_DB Delete Data Block SFC 24 TEST_DB Test Data Block SFC 25 COMPRESS Compress the User Memory SFC 26 UPDAT_PI Update the Process Image Update Table SFC 27 UPDAT_PO Update the Process Image Output Table SFC 28 SET_TINT Set Time-of-Day Interrupt SFC 29 CAN_TINT Cancel Time-of-Day Interrupt SFC 30 ACT_TINT Activate Time-of-Day Interrupt SFC 31 QRY_TINT Query Time-of-Day Interrupt SFC 32 SRT_DINT Start Time-Delay Interrupt SFC 33 CAN_DINT Cancel Time-Delay Interrupt SFC 34 QRY_DINT Query Time-Delay Interrupt SFC 35 MP_ALM Trigger Multicomputing Interrupt SFC 36 MSK_FLT Mask Synchronous Errors SFC 37 DMSK_FLT Unmask Synchronous Errors SFC 38 READ_ERR Read Error Register 28 SFC 39 DIS_IRT Disable New Interrupts and Asynchronous Errors SFC 40 EN_IRT Enable New Interrupts and Asynchronous Errors SFC 41 DIS_AIRT Delay Higher Priority Interrupts and Asynchronous Errors SFC 42 EN_AIRT Enable Higher Priority Interrupts and Asynchronous Errors SFC 43 RE_TRIGR Retrigger Cycle Time Monitoring SFC 44 REPL_VAL Transfer Substitute Value to Accumulator SFC 46 STP Change the CPU to STOP SFC 47 WAIT Delay Execution of the User Program SFC 48 SNC_RTCB Synchronize Slave Clocks SFC 49 LGC_GADR Query the Module Slot Belonging to a Logical Address SFC 50 RD_LGADR Query all Logical Addresses of a Module SFC 51 RDSYSST Read a System Status List or Partial List SFC 52 WR_USMSG Write a User-Defined Diagnostic Event to the Diagnostic Buffer SFC 54 RD_PARM Read Defined Parameters SFC 55 WR_PARM Write Dynamic Parameters SFC 56 WR_DPARM Write Default Parameters SFC 57 PARM_MOD Assign Parameters to a Module SFC 58 WR_REC Write a Data Record SFC 59 RD_REC Read a Data Record SFC 60 GD_SND Send a GD Packet SFC 61 GD_RCV Fetch a Received GD Packet SFC 62 CONTROL Query the Status of a Connection Belonging to a Communication SFB Instance SFC 63 AB_CALL Assembly Code Block SFC 64 TIME_TCK Read the System Time SFC 65 X_SEND Send Data to a Communication Partner outside the Local S7 Station SFC 66 X_RCV Receive Data from a Communication Partner outside the Local S7 Station SFC 67 X_GET Read Data from a Communication Partner outside the Local S7 Station SFC 68 X_PUT Write Data to a Communication Partner outside the Local S7 Station SFC 69 X_ABORT Abort an Existing Connection to a Communication Partner outside the Local S7 Station SFC 72 I_GET Read Data from a Communication Partner within the Local S7 Station SFC 73 I_PUT Write Data to a Communication Partner within the Local S7 Station SFC 74 I_ABORT Abort an Existing Connection to a Communication Partner within the Local S7 Station SFC 79 SET Set a Range of Outputs SFC 80 RSET Reset a Range of Outputs SFC 81 UBLKMOV Uninterruptable Block Move SFC 90 H_CTRL Control Operation in H Systems No Short Name Function 29 SFB CTU Count Up SFB CTD Count Down SFB CTUD Count Up/Down SFB TP Generate a Pulse SFB TON Generate an On Delay SFB TOF Generate an Off Delay SFB USEND Uncoordinated Sending of Data SFB URCV Uncoordinated Receiving of Data SFB 12 BSEND Sending Segmented Data SFB 13 BRCV Receiving Segmented Data SFB 14 GET Read Data from a Remote CPU SFB 15 PUT Write Data to a Remote CPU SFB 16 PRINT Send Data to Printer SFB 19 START Initiate a Warm or Cold Restart on a Remote Device SFB 20 STOP Changing a Remote Device to the STOP State SFB 21 RESUME Initiate a Hot Restart on a Remote Device SFB 22 STATUS Query the Status of a Remote Partner SFB 23 USTATUS Receive the Status of a Remote Device SFB 29 HS_COUNT Counter (high-speed counter, integrated function) SFB 30 FREQ_MES Frequency Meter (frequency meter, integrated function SFB 32 DRUM Implement a Sequencer SFB 33 ALARM Generate Block-Related Messages with Acknowledgment Display SFB 34 ALARM_8 Generate Block-Related Messages without Values for Signals SFB 35 ALARM_8P Generate Block-Related Messages with Values for Signals SFB 36 NOTIFY Generate Block-Related Messages without Acknowledgment Display SFB 37 AR_SEND Send Archive Data SFB 38 HSC_A_B Counter A/B (integrated function) SFB 39 POS Position (integrated function) SFB 41 CONT_C 1) Continuous Control SFB 42 CONT_S 1) Step Control SFB 43 PULSEGEN 1) Pulse Generation * SFB29 "HS_COUNT" and SFB30 "FREQ_MES" only exist on the CPU 312 IFM and CPU 314 IFM SFBs 38 "HSC_A_B" and 39 "POS" only exist on the CPU 314 IFM For a detailed description, refer to * SFBs 41 "CONT_C," 42 "CONT_S" and 43 "PULSEGEN" only exist on the CPU 314 IFM No FC1 FC2 FC3 FC4 FC5 FC6 Short Name Function AD_DT_TM Add duration to a time CONCAT Combine two STRING variables D_TOD_DT Combine DATE and TIME_OF_DAY to DT DELETE Delete in a STRING variable DI_STRNG Data type conversion DINT to STRING DT_DATE Extract the DATE from DT 30 FC7 FC8 FC9 FC10 FC11 FC12 FC13 FC14 FC15 FC16 FC17 FC18 FC19 FC20 FC21 FC22 FC23 FC24 FC25 FC26 FC27 FC28 FC29 FC30 FC31 FC32 FC33 FC34 FC35 FC36 FC37 FC38 FC39 FC40 DT_DAY DT_TOD EQ_DT EQ_STRNG FIND GE_DT GE_STRNG GT_DT GT_STRNG I_STRNG INSERT LE_DT LE_STRNG LEFT LEN LIMIT LT_DT LT_STRNG MAX MID MIN NE_DT NE_STRNG R_STRNG REPLACE RIGHT S5TI_TIM SB_DT_DT SB_DT_TM SEL STRNG_DI STRNG_I STRNG_R TIM_S5TI Extract the day of the week from DT Extract the TIME_OF_DAY from DT Compare DT for equal Compare STRING for equal Find in a STRING variable Compare DT for greater than or equal Compare STRING for greater than or equal Compare DT for greater than Compare STRING for greater than Data type conversion INT to STRING Insert in a STRING variable Compare DT for less than or equal Compare STRING for less than or equal Left part of a STRING variable Length of a STRING variable Limit Compare DT for less than Compare STRING for less than Select maximum Middle part of a STRING variable Select minimum Compare DT for unequal Compare STRING for unequal Data type conversion REAL to STRING Replace in a STRING variable Right part of a STRING variable Data type conversion S5TIME to TIME Subtract two time values Subtract duration from a time Binary selection Data type conversion STRING to DINT Data type conversion STRING to INT Data type conversion STRING to REAL Data type conversion TIME to S5TIME 31 ... thông qua cáp nối thích hợp, vào menu PLC- Display Accessible Nodes, sau PLC- Operating mode chọn chế độ PLC Stop, PLC- Download nạp chương trình xuống PLC 2/ Các khối ngắt Khối OB1 thực theo... sát Vào menu PLC- Connect to – Configured CPU Vào menu Variable- Monitor Vào menu Operating mode để điều khiển chế độ PLC 13 Trường hợp có sẵn PLC, ta phải kết nối máy tính với PLC thông qua... không cần PLC nhờ phần mềm S7 PLC Sim theo bước sau: - Vào menu Simatic Manager- Options- chọn Simulate Modules Cửa sổ sau xuất - Vào menu PLC- Download để nạp khối chương trình xuống PLC mô Vào