1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tài liệu PLC S7300 Siemens và ngôn ngữ lập trình

181 1,1K 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 181
Dung lượng 1,68 MB

Nội dung

Đây là tài liệu về PLC S7300 dành cho các bạn là kỹ sư ngành công nghệ kỹ thuật điều khiển và tự động hóa. Tài liệu giới thiệu tổng quan về PLC, cấu trúc phần cứng, các tập lệnh, phương pháp lập trình,...

Chương PLC S7-300 Siemens ngôn ngữ lập trình I.1 Giới thiệu PLC S7-300 I.1.1 Tổng quan chung Đây dòng sản phẩm cao cấp, dùng cho ứng dụng lớn với yêu cầu I/O nhiều thời gian đáp ứng nhanh,yêu cầu kết nối mạng,và có khả mở rộng cho sau Ngôn ngữ lập trình đa dạng cho phép người sử dụng có quyền chọn lựa Đặc điểm bật S7_300 ngôn ngữ lập trình cung cấp hàm toán đa dạng cho yêu cầu chuyên biệt : Hàm SCALE… ta sử dụng ngôn ngữ chuyên biệt để xây dựng hàm riêng cho ứng dụng mà ta cần Ngoài S7300 xây dựng phần cứng theo cấu trúc Modul, nghĩa S7-300 có Modul tích hợp cho ứng dụng đặc biệt Modul PID, Modul Đọc xung tốc độ cao… Các loại tín hiệu kết nối với PLC bao gồm: a, Tín hiệu số: Là tín hiệu thuộc dạng hàm Boolean, dạng tín hiệu có trị Đối với PLC Siemens : Mức 0: tương ứng với 0V hở mạch Mức 1: Tương ứng với 24V Vd: Các tín hiệu từ nút nhấn, từ công tắc hành trình… tín hiệu số b, Tín hiệu tương tự: Là tín hiệu liên tục, từ 0-10V hay từ 4-20mA… Vd: Tín hiệu đọc từ Loadcell,từ cảm biến lưu lượng… c, Tín hiệu khác: Bao gồm tín hiệu giao tiếp với máy tính, với thiết bị ngoại vi khác giao thức khác giao thức RS232,RS485,Modbus… Hình 4.1 Cấu trúc chung PLC S7-300 (1: Nguồn; 2:Khe cắm; 3: Nguồn 24V; 4: công tắc; 5: đèn báo; 6: khe cắm thẻ nhớ; 7: cổng truyền thong MPI-Profibus DP; 8: giắc cắm SM; 9: sơ đồ đấu dây) I.1.2 Cấu trúc phần cứng PLC S7-300 bao gồm module sau: - Modul CPU: Modul CPU loại Modul chứa vi xử lí, hệ điều hành, nhớ, thời gian, đếm,cổng truyền thông (RS485)… Và có vài cổng vào số.Các cổng vào số CPU gọi cổng vào Onboard Trong họ PLC S7_300 có nhiều loại CPU khác nhau: CPU 312, CPU 314, CPU 315… Những Modul sử dụng loại vi xử lí, khác cổng vào onboard khối hàm đặc biệt tích hợp sẵn thư viện hệ điều hành phục vụ việc sử dụng cổng vào onboard phân biệt với tong tên gọi tên cụm chữ IFM (viết tắt Intergrated Function Module).Ví dụ Module CPU 312IFM, Modul314 IFM… Ngoài có loại module hai cổng truyền thông, cổng truyền thông thứ có chức phục vụ việc nối mạng phân tán Các loại module CPU phân biệt với loại CPU khác thêm cụm từ DP (Distrubited port) tên gọi Ví dụ module CPU 315-DP - Các Modul mở rộng thường chia thành loại chính: PS (Power Supply):; SM ( Signal Module) gồm: DI, DO, DI/O, AI AO, AI/O; IM (Interface Module); FM (Function Module); CP (Communication Module) Lưu ý: Trên Rack gá nhiều module mở rộng (không kể module CPU, module nguồn nuôi) Một module CPU làm việc trực tiếp với nhiều Rack, Rack phải nối với Module IM Hình 4.2 Tủ đấu nối PLC S7-300 PS CPU 10 11 IM SM SM SM SM SM CP FM FM Đối với module SM, loại tín hiệu thường xử lý tín hiệu số tín hiệu tương tự Tùy loại module sử dụng cách cài đặt cấu hình phần cứng mà module làm việc với nhiều loại tín hiệu khác Một trạm PLC hiểu module CPU ghép nối với module mở rông khác (module DI, DO, AI, AO, CP, FM) rack (giá đỡ), việc truy nhập CPU vào module mở rộng thực thông qua địa chúng Một module CPU có khả quản lý rack với tối đa module mở rrộng Tuỳ vào vị trí lắp đặt module mở rộng rack mà module có địa khác PLC S7-300 có nhiều chùng loại CPU, giới thiệu số chủng loại sau: CPU 312: Bộ nhớ làm việc 16KB, chu kì lệnh 0.1us CPU 312C: Bộ nhớ làm việc 16KB, chu kì lệnh 0.1us, tích hợp sẵn 10DI/6DO,2 Xung tốc độ cao 2.5KHz,2 kênh đọc xung tốc độ cao 10Khz CPU 312IFM: Bộ nhớ làm việc 6KB,chu kì lệnh 0.6us,tích hợp sẵn 10DI/6DO CPU 313: Bộ nhớ làm việc 12KB,chu kì lệnh 0,6us CPU 313C: Bộ nhớ làm việc 32KB, chu kì lệnh 0,1us, tích hợp sẵn 24DI, 16DO, 5AI, 2AO, Kênh xuất xung tốc độ cao (2.5Khz), kênh đọc xung tốc độ cao (30Khz) CPU 313C-2DP: Bộ nhớ làm việc 32KB, chu kì lệnh 0.1us, tích hợp sẵn 24DI,16DO,5AI, 2AO, Kênh xuất xung tốc độ cao (2.5Khz), kênh đọc xung tốc độ cao (30Khz),có cổng giao tiếp CPU 313C-2PtP : Bộ nhớ làm việc 32KB,chu kì lệnh 0.1us, tích hợp sẵn 24DI,16DO,5AI, 2AO, Kênh xuất xung tốc độ cao (2.5Khz), kênh đọc xung tốc độ cao (30Khz),có cổng giao tiếp MPI+ PtP connector (RS-422/485 (ASCII, .) CPU 314: Bộ nhớ làm việc 24KB, chu kì lệnh 0.3us CPU 314IFM : Bộ nhớ làm việc 24KB, chu kì lệnh 0.3us, tích hợp sẵn 20DI/16DO, 4AI/ 1AO CPU 314C-2DP:Bộ nhớ làm việc 48KB,chu kì lệnh 0.1us,tích hợp sẵn 24DI/ 16DO, 5AI/ 2AO, kênh xuất xung tốc độ cao,4 kênh đọc xung tốc độ cao.2 cổng giao tiếp CPU 314C-2PtP:Bộ nhớ làm việc 48KB,chu kì lệnh 0.1us,tích hợp sẵn 24DI/ 16DO, 5AI/ 2AO, kênh xuất xung tốc độ cao,4 kênh đọc xung tốc độ cao.2 cổng giao tiếp CPU 315 : Bộ nhớ làm việc 48KB, chu kì lệnh 0.3us CPU 315-2DP: Bộ nhớ làm việc 48KB, chu kì lệnh 0.3us, MPI + DP CPU 315F-2DP : Bộ nhớ làm việc 128KB,chu kì lệnh 0.3us, cổng giao tiếp CPU 316 : Bộ nhớ làm việc 128KB, chu kì lệnh 0.3us CPU 316-2DP: Bộ nhớ làm việc 128KB,chu kì lệnh 0.3us, cổng MPI + DP CPU 317-2: Bộ nhớ làm việc 512KB, chu kì lệnh 0.3us,2 cổng giao tiếp MPI + DP CPU 317F-2: Bộ nhớ làm việc 512KB,chu kì lệnh 0.3us, cổng giao tiếp MPI + DP ( DP master Slave) CPU 318-2: Bộ nhớ làm việc 256KB, chu kì lệnh 0.3us, cổng giao tiếp MPI + DP ( DP Master Slave) CPU 614: Bộ nhớ làm việc 192KB,chu kì lệnh 0.3us, tích hợp sẵn 512DI/DO CPU M7: RS232,MPI 64KB SRAM I.2 Kiểu liệu phân chia nhớ S7-300 a, Các kiểu liệu sử dụng - Kiểu Bool: True False (0 1) - Kiểu Byte: gồm bit - Kiểu Word: 16 bit - Kiểu Int: số nguyên 16 bit - Kiểu Dint: số nguyên 32 bit - Kiểu Real: số thực - Kiểu S5T: kiểu liệu Timer - Kiểu Char: kiểu liệu kí tự - Kiểu Date: kiểu liệu ngày tháng - Kiểu Tod: kiểu liệu ngày tháng b, Phân chia nhớ S7-300 Bộ nhớ PLC S7-300 gồm vùng nhớ chính: - Vùng chứa chương trình ứng dụng : Vùng chứa chương trình chia thành miền: OB ( Organisation block) : miền chứa chương trình tổ chức; FC (Function): Miền chứa chương trình con, tổ chức thành hàm có biến hình thức để trao đổi liệu; FB (Function block): Miền chứa chương trình con, tổ chức thành hàmvà có khả trao đổi liệu với khối chương trình khác Các liệu phải xây dựng thành khối liệu riêng ( Data Block khối DB) - Vùng chứa tham số hệ điều hành: Chia thành miền khác nhau: I (Process image input): Miền liệu cổng vào số,trước bắt đầu thực chương trình, PLC đọc giá trị logic tất cổng đầu vào cất giữ chúng vùng nhớ I Thông thường chương trình ứng dụng không đọc trực tiếp trạng thái logic cổng vào số mà lấy liệu cổng vào từ đệm I Q (Process Image Output): Miền đệm liệu cổng số Kết thúc giai đoạn thực chương trình,PLC chuyển giá trị logic đệm Q tới cổng số Thông thường chương trình không trực tiếp gán giá trị tới tận cổng mà chuyển chúng tới đệm Q M (Miền biến cờ): Chương trình ứng dụng sử dụng biến để lưu giữ tham số cần thiết truy nhập theo Bit (M), byte (MB), từ (MW) hay từ kép (MD) T (Timer): Miền nhớ phục vụ thời gian (Timer) bao gồm việc lưu trữ giá trị thời gian đặt trước ( PV-Preset Value ), giá trị đếm thời gian tức thời (CV –Current Value) giá trị Logic đầu thời gian C (Counter): Miền nhớ phục vụ đếm bao gồm việc lưu trữ giá trị đặt trước ( PV- Preset Value), giá trị đếm tức thời (CV _ Current Value) giá trị logic đầu đệm PI: Miền địa cổng vào Modul tương tự (I/O External input) Các giá trị tương tự cổng vào modul tương tự module đọc chuyển tự động theo địa cấu hình phần cứng Chương trình ứng dụng truy cập miền nhớ PI theo Byte ( PIB), từ PIW từ kép PID PQ: Miền địa cổng cho module tương tự (I/O External Output) Các giá trị theo địa module tương tự chuyển tới cổng tượng tự Chương trình ứng dụng truy nhập miền nhớ PQ theo Byte (PQB),từng từ (PQW) theo từ kép (PQD) - Vùng chứa khối liệu: chia làm loại: DB (Data Block):Miền chứa liệu tổ chức thành khối Kích thước số lượng khối người sử dụng quy định, phù hợp với toán điều khiển.Chương trình truy nhập miền theo bit (DBX), byte (DBB), từ (DBW) từ kép (DBD) L (Local data block): Miền liệu địa phương khối chương trình OB, FC, FB tổ chức sử dụng cho biến nháp tức thời trao đổi liệu biến hình thức với khối chương trình gọi Nội dung khối liệu miền nhớ bị xoá kết thúc chương trình tương ứng OB, FC, FB Miền truy nhập từ chương trình theo bit (L), byte(LB) từ (LW) từ kép (LD) Tên gọi Process- I Kích thước Kích thước tối đa Ý nghĩa truy nhập (phụ thuộc CPU) 0.0÷127.7 Đầu vòng quét, hệ điều Tên gọi Kích thước Kích thước tối đa Ý nghĩa image truy nhập IB (phụ thuộc CPU) 0÷127 hành ghi vào phần nhớ Input (I) IW 0÷126 giá trị lấy từ cổng vào Bộ đệm vào ID 0÷124 số (digitale inputs) vật lý số Process- Q 0.0÷127.7 module mở rộng Cuối vòng quét, hệ điều image QB 0÷127 hành đọc nội dung miền Output (Q) QW 0÷126 nhớ chuyển cổng Bộ đệm số QD 0÷124 số (digitale outputs) 0.0÷255.7 module mở rộng Được sử dụng biến cờ cho chương trình ứng dụng Bit memory M (M) MB 0÷255 Vùng nhớ cờ MW 0÷254 MD 0÷252 Timer (T) Miền nhớ lưu giữ giá trị T0÷T255 PV, CV, T-bit Timer Được truy nhập sửa đổi hệ điều hành chương trình Counter (C) ứng dụng Miền nhớ lưu giữ giá trị C0÷C255 PV, CV, C-bit Counter Được truy nhập để sửa đổi hệ điều hành chương trình Data block DBX (DB) DBB Khối liệu DBW share DBD Data block DIX (DI) DIB Khối liệu DIW Instance DID 0.0÷65535.7 ÷ ứng dụng Được mở lệnh “OPN DB” 65535 0÷65534 0÷65532 0.0÷65535.7 ÷ Là khối DB mở lệnh “OPN DI” 65535 0÷65534 Tên gọi Local Kích thước Kích thước tối đa Ý nghĩa truy nhập (phụ thuộc CPU) 0÷65532 0.0÷65535.7 Miền nhớ cấp phát cho block L (L) LB Miền nhớ địa LW phương cho LD tham số hình thức Peripheral PIB input (PI) PIW PID ÷ khối OB, FC, FB 65535 khối gọi để thực 0÷65534 Miền nhớ 0÷65532 giải phóng thực ÷ xong khối chương trình Chỉ có địa truy cập để đọc ÷ Không có phần nhớ thực 65535 65534 ÷ 65532 Peripheral PQB output (PQ) PQW PQD ÷ Chỉ có địa truy cập để ghi ÷ Không có phần nhớ thực 65535 65534 ÷ 65532 Bảng 4.1 Phân chia vùng nhớ S7-300 c, Vòng quét chương trình PLC thực chương trình theo chu kì lặp Mỗi vòng lặp gọi vòng quét (Scan) Mỗi vòng quét bắt đầu giai đoạn chuyển liệu từ cổng vào số tới vùng đệm ảo I, giai đoạn thực chương trình Trong vòng quét chương trình thực từ lệnh đến lệnh kết thúc khối OB (Block End) Sau giai đoạn thực chương trình giai đoạn chuyển nội dung đệm ảo Q tới cổng số Vòng quét kết thúc giai đoạn truyền thông nội bộvà kiểm tra lỗi Chú ý đệm I Q không liên quan tới cổng vào tương tự nên lệng truy nhập cổng tương tự thực trực tiếp với cổng vật lí không thông qua đệm Thời gian cần thiết để PLC thực vòng quét gọi thời gian vòng quét (Scan Time) Thời gian vòng quét không cố định, tức vòng quét thực khoảng thời gian Có vòng quét thực lâu, có vòng quét thực nhanh tuỳ thuộc vào số lệnh chương trình thực khối liệu truyền thông vòng quét Như việc đọc liệu từ đối tượng để xử lí, tính toán việc gởi tín hiệu điều khiển đến đối tượng có khoảng thời gian trễ thời gian vòng quét Nói cách khác, thời gian vòng quét định tính thời gian thực chương trình điều khiển PLC Thời gian vòng quét ngắn, tính thời gian thực chương trình cao Nếu sử dụng khối chương trình đặc biệt có chế độ ngắt, ví dụ khối OB40, OB80…, chương trình khối thực vòng quét xuất tín hiệu báo ngắt chủng loại Các khối chương trình thực điểm vòng quét không bị gò ép phải giai đoạn thực chương trình Chẳng hạn tín hiệu báo ngắt xuất PLC giai đoạn truyền thông kiểm tra nội bộ, PLC ngừng công việc truyền thông, kiểm tra để thực khối chương trình tương ứng với tín hiệu báo ngắt Với hình thức xử lí tín hiệu ngắt vậy, thời gian vòng quét lớn có nhiều tín hiệu ngắt xuất vòng quét Do để nâng cao tính thời gian thực cho chương trình điều khiển, tuyệt đối không nên viết chương trình xử lí ngắt dài lạm dụng việc sử dụng chế độ ngắt chương trình điều khiển Tại thời điểm thực lệnh vào ra, thông thường lệnh không làm việc trực tiếp với cổng vào mà thông qua đệm ảo cổng vùng nhớ tham số.Việc truyền thông đệm ảo với ngoại vi giai đoạn hệ điều hành CPU quản lí Ở số modul CPU, gặp lệnh vào lập tức,hệ thống cho dừng công việc khác, chương trình xử lí ngắt, để thực lệnh trực tiếp với cổng vào d, Cấu trúc chương trình Chương trình S7_300 lưu nhớ PLC vùng giành riêng cho chương trình lập với dạng cấu trúc khác - Lập trình tuyến tính: toàn chương trình nằm khối nhớ Loại hình cấu trúc tuyến tính phù hợp với toán tự động nhỏ,không phức tạp Khối chọn phải khối OB1, khối mà PLC quét thực lệnh thường xuyên,từ lệnh đến lệnh cuối quay lại lệnh - Lập trình có cấu trúc: Chương trình chia thành phần nhỏ phần thực thi nhiệm vụ chuyên biệt riêng no,từng phần nằm khối chương trình khác Loại hình cấu trúc phù hợp với toán điều khiển nhiều nhiệm vụ phức tạp PLC S7_300 có loại khối sau: Loại khối OB (Organization Block) : Khối tổ chức quản lí chương trình điều khiển Có nhiều loại khối OB với chức khác nhau, chúng phân biệt với số nguyên sau nhóm kí tự OB Ví dụ: OB1, OB35, OB40, OB80,… Loại khối FC (Program block): Khối chương trình với chức riêng giống chương trình hàm (chương trình có biến hình thức) Một chương trình ứng dụng có nhiều khối FC khối FC phân biệt với số nguyên sau nhóm kí tự FC Ví dụ: FC1, FC2… Loại khối FB (Function Block): Là loại khối FC đặc biệt có khả trao đổi lượng liệu lớn với khối chương trình khác Các liệu phải tổ chức thành khối liệu riêng có tên gọi Data block Một chương trình ứng dụng có nhiều khối FB khối Fb phân biệt với số nguyên sau nhóm kí tự FB Chẳng hạn FB1,FB2… Loại khối DB (Data Block): Khối chứa liệu cần thiết để thực chương trình Các tham số khối người dùng tự đặt Một chương trình ứng dụng có nhiều khối DB khối DB phân biệt với số nguyên sau nhóm kí tự DB Ví dụ: DB1, DB2… Chương trình khối liên kết với lệng gọi khối, chuyển khối Xem phần chương trình khối chương trình S7_300 cho phép gọi chương trình lồng nhau, tức chương trình gọi chương trình khác từ chương trình gọi lại gọi tới chương trình thứ … Số lệnh gọi lồng phụ thuộc vào chủng loại module CPU mà ta sử dụng Ví dụ module CPU 314 số lệnh gọi lồng nhiều cho phép Nếu số lần gọi khối lồng mà vượt số giới hạn cho phép, PLC tự chuyển qua chế độ Stop đặt cờ báo lỗi Các khối OB đặc biệt sử dụng cần lưu ý: Trong khối OB thực đặn vòng quét giai đoạn thực chương trình khối OB khác 10 RET_VAL := MW 210 m003 A BR = M 202.5 Lập trình OB10 Bảng biến địa phương Variable Name Data Type Declaratio Comment STARTINFO n TEMP E_ID PR_CLASS OB_NO RESERVED_1 RESERVED_2 PERIOD RESERVED_3 T_STMP YEAR MONTH DAY HOUR MINUTES SECONDS MSEC_WDAY WDAY IN_DATE IN_TIME STRUCT Entire start event information of OB10 declared as structure Event ID: Priority class OB number Reserved Reserved Periodicity of time-of-day interrupt Reserved Structure for time-of-day details WORD TEMP BYTE TEMP BYTE TEMP BYTE TEMP BYTE TEMP WORD TEMP DWORD TEMP STRUCT TEMP BYTE TEMP BYTE TEMP BYTE TEMP BYTE TEMP BYTE TEMP BYTE TEMP WORD TEMP END_STRUCT TEMP END_STRUCT TEMP INT TEMP DATE TEMP TIME_OF_DAY TEMP Day of the week Input variable for FC3 (conversion of time format) Input variable for FC3 OUT_TIME_DAT DATE_AND_TIM TEMP (conversion of time format) Output variable for FC3 and input E variable for SFC28 E STL (OB10) Network Explanation 167 L #STARTINFO.T_STMP.MSEC_WDAY Select day of week L W#16#F AW T #WDAY and store Network 2: L #WDAY If day of week is not L2 Monday, then specify I Monday, 5.00 am as next JC mond starting time and reset Network 3: output Q 4.0 L D#1995–1–27 T #IN_DATE L TOD#20:0:0.0 Otherwise, if day of week is T #IN_TIME Monday, specify Friday, SET 8.00 pm (20.00) as next = Q 4.0 starting time and set output JU cnvrt Q 4.0 mond: L D#1995–1–23 T #IN_DATE L TOD#5:0:0.0 T #IN_TIME CLR = Q 4.0 cnvrt: NOP Network 4: CALL FC IN1 := #IN_DATE IN2 := #IN_TIME Starting time specified RET_VAL := #OUT_TIME_DATE Convert specified starting Network 5: time to format CALL SFC 28 DATE_AND_TIME (for 168 OB_NO := 10 SFC28) SDT := #OUT_TIME_DATE PERIOD := W#16#1201 RET_VAL := MW 200 Set time-of-day interrupt A BR = M 202.1 Network 6: CALL SFC 30 Activate time-of-day OB_NO := 10 interrupt RET_VAL := MW 204 A BR = M 202.2 Network 7: CALL SFC 20 SRCBLK := #STARTINFO.T_STMP Block transfer: save time of RET_VAL := MW 206 day from start event DSTBLK := P#M 100.0 BYTE information of OB10 to the memory area MB100 to MB107 Lập trình OB1 CALL FC 12 Lập trình OB80 Variable Data Type Name STARTINFO STRUCT E_ID WORD PR_CLASS BYTE OB_NO BYTE RESERVED_1 BYTE RESERVED_2 BYTE A1_INFO WORD Declaration Comment TEMP Entire start event information of OB80 TEMP TEMP TEMP TEMP TEMP TEMP declared as structure Event ID: Priority class OB number Reserved Reserved Additional information about the event 169 A2_INFO T_STMP YEAR MONTH DAY HOUR MINUTES SECONDS MSEC_WDA DWORD STRUCT BYTE BYTE BYTE BYTE BYTE BYTE WORD TEMP TEMP TEMP TEMP TEMP TEMP TEMP TEMP TEMP that caused the error Additional information about the event ID, priority class, and OB no of the error Structure for time-of-day details Y END_STRUC TEMP T END_STRUC TEMP T STL (OB80) Network Explanation AN Q 4.1 Set output Q 4.1 if time error occurred S Q 4.1 Block transfer: save entire start event CALL SFC 20 information to memory area MB110 to SRCBLK := #STARTINFO MB129 RET_VAL := MW 210 DSTBLK := P#M 110.0 Byte 20 Ngắt trễ Có bốn ngắt thời trễ OB20 OB23 kích hoạt hàm SFC32 (SRT_DINT) Sau gọi SFC32 thời gian, OB tương ứng hoạt động Khi chưa đến thời điểm kích hoạt hủy OB SFC33 (CAN_DINT) CPU 312 CPU 313 316 CPU 318, 412, 413 CPU 414, 416, 417 Không OB20 OB20, OB21 OB20 23 170 SFC 32: khởi động ngắt ParameterDeclarationData OB_NR INPUT Type INT Memory Description Area I, Q, M, D, Number of the OB, to be started after a L, DTIME INPUT TIME time constant delay (OB20 to OB23) I, Q, M, D, Length of the delay (1 to 60000 ms) L, SIGN INPUT constant WORD I, Q, M, D, Identifier that is entered in the start L, event constant information of the OB when the timedelay OB is RET_VAL OUTPUT INT called I, Q, M, D, If an error occurs while the function is L active, the actual parameter of RET_VAL contains an error code Error Code (W#16# ) 0000 8090 8091 Explanation No error occurred Incorrect parameter OB_NR Incorrect parameter DTIME Truy vấn ngắt trì hoãn SFC34 "QRY_DINT" ParameterDeclarationData Memory Description Area OB_NR INPUT RET_VAL OUTPUT Type INT I, Q, M, D, Number of the OB, whose STATUS will INT L, be constant queried (OB20 to OB23) I, Q, M, D, If an error occurs while the function is L being processed, the actual parameter of 171 STATUS OUTPUT RET_VAL contains an error code WORDI, Q, M, D, Status of the time-delay interrupt, see L following table OUTPUT STATUS Bit Value 0 0 Meaning Time-delay interrupt is enabled by the operating system New time-delay interrupts are not rejected Time-delay interrupt is not activated or has elapsed Time-delay interrupt-OB is not loaded The execution of the time-delay interrupt OB is disabled by an active test function ERROR RET_VAL Error Code (W#16# ) 0000 8090 Explanation No error occurred Incorrect parameter OB_NR Triệt tiêu ngắt trì hoãn SFC33 "CAN_DINT" ParameterDeclaration Data Memory Description Type Area OB_NR INPUT RET_VAL OUTPUT INT I, Q, M, D, Number of the OB to be canceled INT L, (OB20 to constant OB23) I, Q, M, D, L If an error occurs while the function is active, the actual parameter of RET_VAL contains an error code Error Code (W#16# ) Explanation 172 0000 8090 80A0 No error has occurred Incorrect parameter OB_NR Time-delay interrupt has not started Bảng biến địa phương OB20 Variable OB20_EV_CLASS OB20_STRT_INF Type BYTE Description Event class and identifiers: BYTE B#16#11: interrupt is active B#16#21: start request for OB20 (B#16#22: start request for OB21) (B#16#23: start request for OB22) OB20_PRIORITY BYTE OB20_OB_NUMBR BYTE OB20_RESERVED_1 BYTE OB20_RESERVED_2 BYTE OB20_SIGN WORD (B#16#24: start request for OB23) Assigned priority class: default values (OB20) to (OB23) OB number (20 to 23) Reserved Reserved User ID: input parameter SIGN from the call for SFC32 (SRT_DINT) OB20_DTIME TIME Elapsed delay time in ms OB20_DATE_TIME DATE_AND_ Date and time of day when the OB was called TIME Ví dụ 2: Mỗi I0.0 ON 10 s sau Q0.0 ON I0.2 ON reset Q0.0 Nếu khoảng delay mà I0.1 ON Q0.0 OFF Bảng ký hiệu: Address I0.0 I0.1 I0.2 Q4.0 MB1 MW4 MD10 Meaning Input to enable "start time-delay interrupt" Input to cancel a time-delay interrupt Input to reset output Q 4.0 Output set by the time-delay interrupt OB (OB20) Used for edge flag and binary result (status bit BR) buffer for SFCs STATUS of time-delay interrupt (SFC34 "QRY_TINT") Seconds and milliseconds BCD-coded from the start event information of MW 100 OB1 RET_VAL of SFC32 "SRT_DINT" 173 MW102 MW104 MW106 MB120 to RET_VAL of SFC34 "QRY_DINT" RET_VAL of SFC33 "CAN_DINT" RET_VAL of SFC20 "BLKMOV" Memory for start event information of OB20 MB139 MD140 Seconds and milliseconds BCD-coded from the start event information of MW144 OB20 Seconds and milliseconds BCD-coded from the start event information of OB1; acquired from start event information of OB20 (user-specific ID SIGN) Bảng biến địa phương OB20 Variable Data Type Declaration Comment Name STARTINFO E_ID PC_NO OB_NO D_ID D_ID SIGN DTIME STRUCT WORD BYTE BYTE BYTE BYTE WORD TIME TEMP TEMP TEMP TEMP TEMP TEMP TEMP TEMP Start information for OB20 Event ID: Priority class OB number Data ID Data ID User-specific ID Time with which the time-delay interrupt TEMP is started Structure for time-of-day details T_STMP STRUCT (time stamp) YEAR BYTE MONTH BYTE DAY BYTE HOUR BYTE MINUTES BYTE SECONDS BYTE MSEC_WDAY WORD END_STRUC TEMP TEMP TEMP TEMP TEMP TEMP TEMP TEMP T END_STRUC TEMP T 174 STL (OB20) Network Explanation SET Set output Q 4.0 unconditionally = Q 4.0 Network 2: L QW Activate output word immediately T PQW Network 3: L #STARTINFO.T_STMP.SECONDS Read seconds from start event information T MW 140 Read milliseconds and day of week from L start event information #STARTINFO.T_STMP.MSEC_WDA Y Eliminate day of week and T MW 142 write milliseconds back (now BCD-coded in L MD 140 MW 142) SRD Read starting time of time-delay interrupt (= T MD 140 call SFC32) from start event information Network 4: Copy start event information to memory area L #STARTINFO.SIGN (MB120 to MB139) T MW 144 Network 5: CALL SFC 20 SRCBLK := STARTINFO RET_VAL := MW 106 DSTBLK := P#M 120.0 Byte 20 Bảng biến địa phương OB1 Variable Name Data Type STARTINFO STRUCT E_ID WORD Declaration Comment TEMP Start information for OB1 TEMP Event ID: 175 PC_NO OB_NO D_ID D_ID CUR_CYC MIN_CYC MAX_CYC T_STMP BYTE BYTE BYTE BYTE INT INT INT STRUCT TEMP TEMP TEMP TEMP TEMP TEMP TEMP TEMP Priority class OB number Data ID Data ID Current cycle time Minimum cycle time Maximum cycle time Structure for time-of-day details (time stamp) YEAR MONTH DAY HOUR MINUTES SECONDS MSEC_WDAY BYTE BYTE BYTE BYTE BYTE BYTE WORD END_STRUCT END_STRUCT TEMP TEMP TEMP TEMP TEMP TEMP TEMP TEMP TEMP STL (OB1) Network Explanation L #STARTINFO.T_STMP.SECONDS Read seconds from start event T MW 10 information L #STARTINFO.T_STMP.MSEC_WDAY Read milliseconds and day of week T MW 12 from start event information L MD 10 Eliminate day of week and SRD write milliseconds back (now BCD- T MD 10 coded in MW 12) Network 2: Positive edge at input I 0.0? A I 0.0 FP M 1.0 = M 1.1 Network 3: If so, start time-delay interrupt (starting 176 A M 1.1 time of time-delay interrupt assigned to JNB m001 the parameter SIGN) CALL SFC 32 OB_NO := 20 DTME := T#10S SIGN := MW 12 RET_VAL:= MW 100 m001: NOP Query status of time-delay interrupt Network 4: (SFC QRY_DINT) CALL SFC 34 OB_NO := 20 RET_VAL:= MW 102 STATUS := MW Positive edge at input I 0.1? Network 5: A I 0.1 FP M 1.3 = M 1.4 and time-delay interrupt is activated Network 6: (bit of time-delay interrupt A M 1.4 STATUS)? A M 5.2 Then cancel time-delay interrupt JNB m002 CALL SFC 33 OB_NO := 20 RET_VAL:= MW 104 Reset output Q 4.0 with input I 0.2 m002: NOP A I 0.2 R Q 4.0 V.3 Ngắt chu kỳ 177 Ngắt chu kỳ OB30 OB38 gọi đến theo chu kỳ tuần hoàn Thời gian thực ngắt chu kỳ OB phải nhỏ nhiều chu kỳ ngắt, không OB80 gọi Chu kỳ ngắt xác định khoảng (interval) số nguyên chu kỳ( đơn vị ms) lệch pha (phase offset) thời gian trễ m (đơn vị ms), 0[...]... lượng và chức năng Trong mục này, sẽ trình bày chủ yếu bằng ngôn ngữ LAD và STL, kết hợp song song giữa hai loại ngôn ngữ được sử dụng chủ yếu để đọc giả so sánh về cú pháp hệ lệnh a Nhóm lệnh logic tiếp điểm • Lệnh AND (và) Cú pháp A (toán hạng) - FC = 0 thì nó sẽ gán nội dung của toán hạng vào RLO Sau đó sẽ dựng FC = 1 - FC = 1 thì RLO = RLO ∩ I0.0 và duy trì FC = 1 Khi vào đầu một chương trình thì... nhớ - CC0 và CC1 ( Condition code) : Hai bit báo trạng thái của kết quả phép tính với số nguyên,số thực phép dịch chuyển hoặc phép tính logic trong ACCU - BR (Binary result bit) : Bit trạng thái cho phép liên kết hai loại ngôn ngữ lập trình STL và LAD Chẳng hạn cho phép người sử dụng có thể viết một khối chương trình FB hoặc FC trên ngôn ngữ STL nhưng gọi và sử dụng chúng trong một chương trình khác... thời gian trễ tức thời dạng BCD Cú pháp LC Khai báo trong ngôn ngữ LAD STT Đếm tiến STL CU Đếm lùi CD LAD 33 LAD STT Đếm tiến lùi STL LAD LAD Ví dụ về sử dụng bộ đếm: LAD: STL : 34 Chương III Phương pháp lập trình III.1 Lập trình tuyến tính Kỹ thuật lập trình tuyến tính là phương pháp lập trình mà toàn bộ chương trình ứng dụng sẽ chỉ nằm trong một khối OB1 Kỹ thuật này có ưu điểm là gọn,... đảo của toán hạng và ghi lại kết quả vào RLO Lưu ý: Toán hạng A và O phụ thuộc vào tiếp điểm kế tiếp Ví dụ sử dụng trong ngôn ngữ LAD và STL: • Lệnh gán Cú pháp = ( toán hạng ) • Lệnh thực hiện phép tính Cú pháp ∧ với giá trị 1 biểu thức(Lệnh này không có toán hạng) A( - FC = 0 lệnh sẽ gán giá trị logic của biểu thức trong dấu ngoặc sau nó vào RLO - FC = 1 lệnh sẽ thực hiện phép tính và ∧ giữa RLO với... chương trình như đổi sai kiểu dữ liệu hoặc lỗi truy nhập khối DB, FC,FB không có trong bộ nhớ CPU OB122 (Synchronous error):Khối OB122 sẽ được gọi khi CPU phát hiện thấy lỗi truy cập module trong chương trình, ví dụ chương trình có lệnh truy nhập module vào ra mở rộng nhưng lại không tìm thấy module này Ngoài ra, còn một số khối OB đặc biết khác, tùy thuộc vào chủng loại CPU mà nó có chức năng và phương... của toán hạng vào RLO - FC = 1 nó sẽ thực hiện phép tính ∧ giữa RLO với giá trị nghịch đảo của toán hạng và ghi lại kết quả vào RLO • Lệnh O Cú pháp O (toán hạng) - FC = 0 thì nó sẽ gán giá trị logic của toán hạng vào RLO - FC = 1 nó sẽ thực hiện phép ∨ giữa RLO với toán hạng và ghi lại kết quả vào RLO • Lệnh ON Cú pháp ON (toán hạng) - FC = 0 thì nó sẽ gán giá trị logic của toán hạng vào RLO 15 - FC... phương pháp sử dụng khác nhau e, Các vùng nhớ và truy cập dữ liệu Trong S7_300 có các vùng nhớ sau: I: Input, các ngõ vào số Q:Output, các ngõ ra số M: Internal Memory, vùng nhớ nội DB: Data Block, dữ liệu Sử dụng vùng nhớ này phải khai báo trong phần mềm PIW: Analog Input, ngõ vào analog PQW: Analog Output, ngõ ra analog T: Timer C: Counter 12 Định dạng dữ liệu: • Kiểu Bool: VD: Q0.0, I0.0, DB1.DBX2.3... thức trong dấu ngoặc sau nó và ghi lại kết quả vào RLO • Lệnh thực hiện phép tính ∧ với giá trị nghịch đảo của 1 biểu thức (Lệnh này không có toán hạng) Cú pháp AN( - FC = 0 lệnh sẽ gán giá trị logic của biểu thức trong dấu ngoặc sau nó vào RLO - FC = 1 lệnh sẽ thực hiện phép tính và ∧ giữa RLO với giá trị nghịch đảo logic của biểu thức trong dấu ngoặc sau nó và ghi lại kết quả vào RLO • Lệnh thực hiện... trị nghịch đảo của biểu thức trong dấu ngoặc sau nó và ghi lại kết quả vào RLO Ví dụ: • Lệnh thực hiện phép tính exclusive or Cú pháp X (toán hạng) - FC = 0 lệnh ghi giá trị logic của toán hạng vào RLO - FC = 1 lệnh sẽ kiểm tra xem nội dung của RLO và giá trị logic của toán hạng có khác nhau không nếu khác thì ghi 1 vào RLO nếu không khác thì ghi 0 vào RLO • Lệnh thực hiện phép tính exclusive or not... sẽ ghi 1 vào RLO Trường hợp khác thì ghi 0 đồng thời chuyển nội dung RLO vào lại cờ biến Vậy RLO có giá trị 1 trong 1 vòng quét khi có sườn xuống trong RLO b Các lệnh có toán hạng • Lệnh đọc vào ACCU Cú pháp L (toán hạng) Nội dung cũ của ACCU1được chuyển vào ACCU2 Nếu giá trị chuyển vào có kích thước < từ kép thì được ghi theo thứ tự từ byte thấp đến byte cao của từ thấp Nếu giá trị chuyển vào có kích

Ngày đăng: 26/09/2016, 21:24

w