Bài giảng Điều khiển lập trình I - Nguyễn Đình Hoàng
Chương 1: ĐẠI CƯƠNG VỀ ĐIỀU KHIỂN LẬP TRÌNH
1.1 Các loại điều khiển trong công nghiệp
Quá trình thực hiện cơ khí hoá - hiện đại hoá các ngành công nghiệp đòi hỏi vấn
đề tự động hoá các dây chuyền sản xuất ngày càng tăng. Tự động hoá công nghiệp
ngày càng đòi hỏi tính chính xác cao nên trong kỹ thuật điều khiển có nhiều thay đổi
về thiết bị cũng như thay đổi về phương pháp điều khiển.
Trong lĩnh vực điều khiển người ta có hai phương pháp điều khiển là: phương
pháp điều khiển nối cứng và phương pháp điều khiển lập trình được.
1.1.1 Phương pháp điều khiển nối cứng
Trong các hệ thống điều khiển nối cứng người ta chia ra làm hai loại: nối cứng
có tiếp điểm và nối cứng không tiếp điểm.
Điều khiển nối cứng có tiếp điểm: là dùng các khí cụ điện như contactor, relay,
kết hợp với các bộ cảm biến, các đèn, các công tắc các khí cụ này được nối lại với
nhau thành một mạch điện cụ thể để thực hiện một yêu cầu công nghệ nhất định. Ví
dụ như: mạch điều khiển đổi chiều động cơ, mạch khởi động sao – tam giác, mạch
điều khiển nhiều động cơ chạy tuần tự
Tóm tắt nội dung tài liệu: Bài giảng Điều khiển lập trình I - Nguyễn Đình Hoàng
TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA KỸ THUẬT CÔNG NGHỆ BÀI GIẢNG ĐIỀU KHIỂN LẬP TRÌNH I Bậc học: CAO ĐẲNG GV: Nguyễn Đình Hoàng Bộ môn: Điện - Điện tử Khoa: Kỹ thuật Công nghệ Quảng Ngãi, năm 2015 TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA KỸ THUẬT CÔNG NGHỆ BÀI GIẢNG ĐIỀU KHIỂN LẬP TRÌNH I Bậc học: CAO ĐẲNG SỐ TÍN CHỈ: 2 ( 30T) GV: Nguyễn Đình Hoàng Bộ môn: Điện - Điện tử Khoa: Kỹ thuật Công nghệ Quảng Ngãi, năm 2015 Lời nói đầu Hiện nay, Việt Nam đang bước vào giai đoạn phát triển công nghiệp hóa – hiện đại hóa rất mạnh mẽ. Trong nhiều lĩnh vực, đặc biệt là ngành tự động hóa có nhiều bước phát triển vượt bậc, góp phần thúc đẩy sự nghiệp công nghiệp hoá nước nhà. Nhằm đáp ứng cho việc giảng dạy môn Điều khiển lập trình (PLC) bậc Cao Đẳng, tác giả đã biên soạn bài giảng này nhằm làm tài liệu học tập cho các lớp chuyên ngành Kỹ thuật Điện- Điện tử tại Đại học Phạm Văn Đồng. Tài liệu này được sử dụng cho sinh viên các lớp Cao đẳng với thời lượng 30 tiết. Tác giả hy vọng rằng đây sẽ là tài liệu thiết thực cho các bạn sinh viên. Trong quá trình biên soạn, chắc chắn tài liệu không tránh khỏi có những sai sót. Mọi góp ý xin gửi về địa chỉ Nguyễn Đình Hoàng - Khoa Kỹ Thuật Công Nghệ - Trường Đai học Phạm Văn Đồng. Xin chân thành cảm ơn. Tác giả MỤC LỤC Chương 1: ĐẠI CƯƠNG VỀ ĐIỀU KHIỂN LẬP TRÌNH 1 1.1 Các loại điều khiển trong công nghiệp 1.2 Ưu điểm của PLC . 1.3 Các ứng dụng trong thực tế . Chương 2: CẤU TRÚC VÀ PHƯƠNG THỨC HOẠT ĐỘNG CỦA PLC 3 2.1 Cấu trúc của một PLC . 2.2 Các khối của PLC . 2.3 Các ngõ vào ra và cách kết nối . 2.4 Xử lý chương trình . 2.5 Các phương pháp lập trình (LAD,STL) . Chương 3: CÁC PHÉP TOÁN NHỊ PHÂN CỦA PLC 14 3.1 Các liên kết logic . 3.2 Chức năng nhớ RS . 3.3 Timer . 3.4 Counter . 3.5 Các thí dụ . Chương 4: CÁC PHÉP TOÁN SỐ CỦA PLC 43 4.1Chức năng truyền dẫn . 4.2Chức năng so sánh . 4.3Chức năng dịch chuyển . 4.4Chức năng biến đổi . 4.5Chức năng toán học (cộng ,trừ ,nhân ,chia ). 4.6Chức năng số ( trị tuyệt đối , căn , sin , cos) . 4.7Các thí dụ . Chương 5: XỬ LÝ TÍN HIỆU ANALOG 64 5.1 Tín hiệu analog . 5.2 Biểu diễn giá trị analog . 5.3 Kết nối các cảm biến và tải . 5.4 Đọc và chuẩn hoá giá trị đo . 5.5 Hiển thị giá trị đo . TRANG 1 Chương 1: ĐẠI CƯƠNG VỀ ĐIỀU KHIỂN LẬP TRÌNH 1.1 Các loại điều khiển trong công nghiệp Quá trình thực hiện cơ khí hoá - hiện đại hoá các ngành công nghiệp đòi hỏi vấn đề tự động hoá các dây chuyền sản xuất ngày càng tăng. Tự động hoá công nghiệp ngày càng đòi hỏi tính chính xác cao nên trong kỹ thuật điều khiển có nhiều thay đổi về thiết bị cũng như thay đổi về phương pháp điều khiển. Trong lĩnh vực điều khiển người ta có hai phương pháp điều khiển là: phương pháp điều khiển nối cứng và phương pháp điều khiển lập trình được. 1.1.1 Phương pháp điều khiển nối cứng Trong các hệ thống điều khiển nối cứng người ta chia ra làm hai loại: nối cứng có tiếp điểm và nối cứng không tiếp điểm. Điều khiển nối cứng có tiếp điểm: là dùng các khí cụ điện như contactor, relay, kết hợp với các bộ cảm biến, các đèn, các công tắc các khí cụ này được nối lại với nhau thành một mạch điện cụ thể để thực hiện một yêu cầu công nghệ nhất định. Ví dụ như: mạch điều khiển đổi chiều động cơ, mạch khởi động sao – tam giác, mạch điều khiển nhiều động cơ chạy tuần tự Đối với nối cứng không tiếp điểm: là dùng các cổng logic cơ bản, các cổng logic đa chức năng hay các mạch tuần tự (gọi chung là IC số), kết hợp với các bộ cảm biến, đèn, công tắc và chúng cũng được nối lại với nhau theo một sơ đồ logic cụ thể để thực hiện một yêu cầu công nghệ nhất định. Các mạch điều khiển nối cứng sử dụng các linh kiện điện tử công suất như SCR, Triac để thay thế các contactor trong mạch động lực. Trong hệ thống điều khiển nối cứng, các linh kiện hay khí cụ điện được nối vĩnh viễn với nhau. Do đó, khi muốn thay đổi lại nhiệm vụ điều khiển thì phải nối lại toàn bộ mạch điện. Khi đó, với các hệ thống phức tạp thì không hiệu quả và rất tốn kém. 1.1.2.Phương pháp điều khiển lập trình được Đối với phương pháp điều khiển lập trình này thì ta có thể sử dụng những phần mềm khác nhau với sự trợ giúp của máy tính hay các thiết bị có thể lập trình được trực tiếp trên thiết bị có kết nối thiết bị ngoại vi. Ví dụ như: LOGO!, ZEN, S7-200 Chương trình điều khiển được ghi trực tiếp vào bộ nhớ của bộ điều khiển hay một máy tính. Để thay đổi chương trình điều khiển ta chỉ cần thay đổi nội dung bộ nhớ của bộ điều khiển, phần nối dây bên ngoài không bị ảnh hưởng. Đây là ưu điểm lớn nhất của bộ điều khiển lập trình được. 1.2 Ưu điểm của PLC PLC viết tắt của Programmable Logic Controller , là thiết bị điều khiển lập trình được (khả trình) cho phép thực hiện linh hoạt các thuật toán điều khiển logic thông qua một ngôn ngữ lập trình. Người sử dụng có thể lập trình để thực hiện một loạt trình tự các sự kiện. Các sự kiện này được kích hoạt bởi tác nhân kích thích (ngõ vào) tác động vào PLC hoặc qua các hoạt động có trễ như thời gian định thì hay các sự kiện được đếm. Một khi sự kiện được kích hoạt thật sự, nó bật ON hay OFF thiết bị điều khiển bên ngoài được gọi là thiết bị vật lý. Một bộ điều khiển lập trình sẽ liên tục 2 “lặp” trong chương trình do “người sử dụng lập ra” chờ tín hiệu ở ngõ vào và xuất tín hiệu ở ngõ ra tại các thời điểm đã lập trình. Để khắc phục những nhược điểm của bộ điều khiển dùng dây nối (bộ điều khiển bằng Relay) người ta đã chế tạo ra bộ PLC nhằm thỏa mãn các yêu cầu sau : - Lập trình dể dàng, ngôn ngữ lập trình dể học . - Gọn nhẹ, dể dàng bảo quản, sửa chữa. - Dung lượng bộ nhớ lớn để có thể chứa được những chương trình phức tạp . - Hoàn toàn tin cậy trog môi trường công nghiệp . - Giao tiếp được với các thiết bị thông minh khác như: máy tính, nối mạng, các Modul mở rộng... - Giá cả cá thể cạnh tranh được. 1.3 Các ứng dụng trong thực tế Các bộ điều khiển lập trình nhờ có nhiều ưu điểm và các tính năng tích hợp bên trong nên nó được sử dụng rộng rãi trong công nghiệp và trong dân dụng như: - Điều khiển động cơ. - Máy công nghệ. - Hệ thống bơm. - Hệ thống nhiệt 3 Chương 2: CẤU TRÚC VÀ PHƯƠNG THỨC HOẠT ĐỘNG CỦA PLC 2.1 Cấu trúc của một PLC Tất cả các PLC đều có thành phần chính là : - Một bộ nhớ chương trình RAM bên trong ( có thể mở rộng thêm một số bộ nhớ ngoài EPROM ). - Một bộ vi xử lý có cổng giao tiếp dùng cho việc ghép nối với PLC . - Các Modul vào /ra. Bên cạnh đó, một bộ PLC hoàn chỉnh còn đi kèm thêm môt đơn vị lập trình bằng tay hay bằng máy tính. Hầu hết các đơn vị lập trình đơn giản đều có đủ RAM để chứa đựng chương trình dưới dạng hoàn thiện hay bổ sung. Nếu đơn vị lập trình là đơn vị xách tay, RAM thường là loại CMOS có pin dự phòng, chỉ khi nào chương trình đã được kiểm tra và sẳn sàng sử dụng thì nó mới truyền sang bộ nhớ PLC . Đối với các PLC lớn thường lập trình trên máy tính nhằm hổ trợ cho việc viết, đọc và kiểm tra chương trình. Các đơn vị lập trình nối với PLC qua cổng RS232, RS422, RS458, 2.2 Các khối của PLC - Đơn vị xử lý trung tâm CPU điều khiển các hoạt động bên trong PLC. Bộ xử lý sẽ đọc và kiểm tra chương trình được chứa trong bộ nhớ, sau đó sẽ thực hiện thứ tự từng lệnh trong chương trình, sẽ đóng hay ngắt các đầu ra. Các trạng thái ngõ ra ấy được phát tới các thiết bị liên kết để thực thi. Và toàn bộ các hoạt động thực thi đó đều phụ thuộc vào chương trình điều khiển được giữ trong bộ nhớ. - Hệ thống bus Hình 2.1 Hình dạng bên ngoài của PLC S7-200 4 Hệ thống Bus là tuyến dùng để truyền tín hiệu, hệ thống gồm nhiều đường tín hiệu song song : Address Bus : Bus địa chỉ dùng để truyền địa chỉ đến các Modul khác nhau. Data Bus: Bus dùng để truyền dữ liệu. Control Bus: Bus điều khiển dùng để truyền các tín hiệu định thì và điểu khiển đồng bộ các hoạt động trong PLC . Trong PLC các số liệu được trao đổi giữa bộ vi xử lý và các modul vào ra thông qua Data Bus, Address Bus và Data Bus gồm 8 đường, ở cùng thời điểm cho phép truyền 8 bit của 1 byte một cách đồng thời hay song song. Nếu môt modul đầu vào nhận được địa chỉ của nó trên Address Bus, nó sẽ chuyển tất cả trạnh thái đầu vào của nó vào Data Bus. Nếu một địa chỉ byte của 8 đầu ra xuất hiện trên Address Bus, modul đầu ra tương ứng sẽ nhận được dữ liệu từ Data bus. Control Bus sẽ chuyển các tín hiệu điều khiển vào theo dõi chu trình hoạt động của PLC . Các địa chỉ và số liệu được chuyển lên các Bus tương ứng trong một thời gian hạn chế. Hê thống Bus sẽ làm nhiệm vụ trao đổi thông tin giữa CPU, bộ nhớ và I/O . Bên cạch đó, CPU được cung cấp một xung Clock có tần số từ 1-8 MHZ. Xung này quyết định tốc độ hoạt động của PLC và cung cấp các yếu tố về định thời, đồng hồ của hệ thống. - Bộ nhớ PLC thường yêu cầu bộ nhớ trong các trường hợp : Làm bộ định thời cho các kênh trạng thái I/O. Làm bộ đệm trạng thái các chức năng trong PLC như định thời, đếm, ghi các Relay. Mỗi lệnh của chương trình có một vị trí riêng trong bộ nhớ, tất cả mọi vị trí trong bộ nhớ đều được đánh số, những số này chính là địa chỉ trong bộ nhớ . Địa chỉ của từng ô nhớ sẽ được trỏ đến bởi một bộ đếm địa chỉ ở bên trong bộ vi xử lý. Bộ vi xử lý sẽ giá trị trong bộ đếm này lên một trước khi xử lý lệnh tiếp theo. Với một địa chỉ mới , nội dung của ô nhớ tương ứng sẽ xuất hiện ở đấu ra, quá trình này được gọi là quá trình đọc . Bộ nhớ bên trong PLC được tạo bởi các vi mạch bán dẫn, mỗi vi mạch này có khả năng chứa 2000 ÷ 16000 dòng lệnh, tùy theo loại vi mạch. Trong PLC các bộ nhớ như RAM, EPROM đều được sử dụng . RAM (Random Access Memory ) có thể nạp chương trình, thay đổi hay xóa bỏ nội dung bất kỳ lúc nào. Nội dung của RAM sẽ bị mất nếu nguồn điện nuôi bị mất . Để tránh tình trạng này các PLC đều được trang bị một pin khô, có khả năng cung cấp năng lượng dự trữ cho RAM từ vài tháng đến vài năm. Trong thực tế RAM được dùng để khởi tạo và kiểm tra chương trình. Khuynh hướng hiện nay dùng CMOSRAM nhờ khả năng tiêu thụ thấp và tuổi thọ lớn . EPROM (Electrically Programmable Read Only Memory) là bộ nhớ mà người sử dụng bình thường chỉ có thể đọc chứ không ghi nội dung vào được . Nội dung của 5 EPROM không bị mất khi mất nguồn , nó được gắn sẵn trong máy , đã được nhà sản xuất nạp và chứa hệ điều hành sẵn. Nếu người sử dụng không muốn mở rộng bộ nhớ thì chỉ dùng thêm EPROM gắn bên trong PLC. Trên PG (Programer) có sẵn chổ ghi và xóa EPROM. Môi trường ghi dữ liệu thứ ba là đĩa cứng hoạc đĩa mềm, được sử dụng trong máy lập trình . Đĩa cứng hoăc đĩa mềm có dung lượng lớn nên thường được dùng để lưu những chương trình lớn trong một thời gian dài . Kích thước bộ nhớ : Các PLC loại nhỏ có thể chứa từ 300 ÷1000 dòng lệnh tùy vào công nghệ chế tạo . Các PLC loại lớn có kích thước từ 1K ÷ 16K, có khả năng chứa từ 2000 ÷16000 dòng lệnh. Ngoài ra. còn cho phép gắn thêm bộ nhớ mở rộng như RAM , EPROM. - Cấu trúc phần cứng của PLC S7-200 CPU 214 S7-200 là thiết bị điều khiển logic khả trình loại nhỏ của Hãng SIEMENS (CHLB Đức) có cấu trúc theo kiểu Modul và có các modul mở rộng. Các modul này được sử dụng cho nhiều ứng dụng lập trình khác nhau. Thành phần cơ bản của S7-200 là khối vi xử lý CPU-214. CPU-214 bao gồm 14 ngõ vào và 10 ngõ ra, có khả năng thêm 7 modul mở rộng. 2.048 từ đơn (4 Kbyte) thuộc miền nhớ đọc / ghi non-volatile để lưu chương trình (vùng nhớ có giao diện với EEPROM). 2.048 từ đơn (4 Kbyte) thuộc kiểu đọc ghi để lưu dữ liệu, trong đó 512 từ đầu thuộc miền non-volatile. Tổng số ngõ vào / ra cực đại là 64 ngõ vào và 64 ngõ ra. 128 Timer chia làm 3 loại theo độ phân giải khác nhau: 4 Timer 1ms, 16 Timer 10ms và 108 Timer 100ms. 128 bộ đếm chia làm 2 loại: chỉ đếm tiến và vừa đếm tiến vừa đếm lùi. 688 bít nhớ đặc biệt dùng để thông báo trạng thái và đặt chế độ làm việc. Các chế độ xử lý ngắt gồm: ngắt truyền thông, ngắt theo sườn lên hoặc xuống, ngắt thời gian, ngắt của bộ đếm tốc độ cao và ngắt truyền xung. 3 bộ đếm tốc độ cao với nhịp 2Khz và 7 Khz. 2 bộ phát xung nhanh cho dãy xung kiểu PTO hoặc kiểu PWM. 2 bộ điều chỉnh tương tự Toàn bộ vùng nhớ không bị mất dữ liệu trong khoảng thời gian 190 giờ kể từ khi PLC bị mất nguồn cung cấp. Các đèn báo trên S7-200 CPU214 SF (đèn đỏ): Đèn đỏ SF báo hiệu hệ thống bị hỏng. 6 RUN (đèn xanh): Đèn xanh RUN chỉ định PLC đang ở chế độ làm việc và thực hiện chương trình được nạp vào trong máy. STOP (đèn vàng): Đèn vàng STOP chỉ định rằng PLC đang ở chế độ dừng chương trình và đang thực hiện lại. Cổng vào ra: Ix.x (đèn xanh): Đèn xanh ở cổng vào báo hiệu trạng thái tức thời của cổng Ix.x. Đèn này báo hiệu trạng thái của tín hiệu theo giá trị Logic của công tắc. Qx.x (đèn xanh): Đèn xanh ở cổng ra báo hiệu trạng thái tức thời của cổng Qx.x. Đèn này báo hiệu trạng thái của tín hiệu theo giá trị logic của cổng. Chế độ làm việc: PLC có 3 chế độ làm việc: RUN: cho phép PLC thực hiện chương trình từng bộ nhớ, PLC sẽ chuyển từ RUN sang STOP nếu trong máy có sự cố hoặc trong chương trình gặp lệnh STOP. STOP: Cưởng bức PLC dừng chương trình đang chạy và chuyển sang chế độ STOP. TERM: Cho phép máy lập trình tự quyết định chế độ hoạt động cho PLC hoặc RUN hoặc STOP. Cổng truyền thông. S7-200 sử dụng cổng truyền thông nối tiếp RS485 với phích nối 9 chân để phục vụ cho việc ghép nối với thiết bị lập trình hoặc với các trạm PLC khác. Tốc độ truyền cho máy lập trình kiểu PPI là 9600 baud. Tốc độ truyền cung cấp của PLC theo kiểu tự do là 300 - 38.400 baud. Để ghép nối S7-200 với máy lập trình PG702 hoặc các loại máy lập trình thuộc họ PG7xx có thể dùng một cáp nối thẳng MPI. Cáp đó đi kèm với máy lập trình. Ghép nối S7-200 với máy tính PC qua cổng RS232 cần có cáp nối PC / PPI với bộ chuyển đổi RS232 / RS485. Hình 2.2. Truyền thông PLC S7-200 với máy tính 7 - Cấu trúc bộ nhớ Bộ nhớ S7-200 được chia thành 4 vùng với 1 tụ có nhiệm vụ duy trì dữ liệu trong một khoảng thời gian nhất định khi mất nguồn. Bộ nhớ S7-200 có tính năng động cao, đọc, ghi được trong toàn vùng, loại trừ các bit nhớ đặc biệt SM (Special memory) chỉ có thể truy nhập để đọc Vùng chương trình Là nguồn nhờ được sử dụng để lưu giữ các lệnh chương trình. Vùng này thuộc kiểu non-volatile đọc / ghi được. Vùng tham số Là miền lưu giữ các tham số như: từ khóa, địa chỉ trạm, cũng giống như vùng chương trình, thuộc kiểu non-volatile đọc / ghi được. Vùng dữ liệu Là miền nhớ động được sử dụng để cất giữ các dữ liệu của chương trình. Nó có thể được truy cập theo từng bít, từng byte, từng từ đơn (W-Word) hoặc theo từ kép (DW_ Double Word), vùng dữ liệu được chia thành những miền nhớ nhỏ với các công dụng khác nhau. Chúng được ký hiệu bằng chữ cái đầu theo từ tiếng Anh, đặc trưng cho công dụng riêng của chúng như sau: V : Variable Memory. ... đếm lần dịch chuyển. Tại mỗi lần dịch chuyển, giá trị logic 0 được đưa vào bít thấp (bit 0) và giá trị logic của bít cao (bít 31) được chuyển vào bít báo tràn SM1.1 Trong LAD kết quả được ghi vào từ kép OUT. Trong STL kết quả vẫn nằm trong IN. Cú pháp của lệnh này như sau: SHL W EN IN OUT N SHR DW EN IN OUT N 51 LAD STL SLD IN N Lệnh ROR_W Là lệnh quay các bít của từ đơn IN sang phải N lần, với N được gọi là số đếm lần quay. Tại mỗi lần quay, giá trị logic của bít thấp (bít 0) được chuyển vào bít báo tràn SM1.1 vừa được ghi lại vào bít cao (bít 15) của từ IN. Trong LAD kết quả được ghi vào từ OUT. Trong STL kết quả vẫn nằm trong IN. Cú pháp của lệnh này như sau: LAD STL RRW IN N Lệnh ROR_DW Là lệnh quay các bít của từ kép IN sang phải N lần, trong đó N được gọi là số lần quay. Tại mỗi lần quay, giá trị logic của bít thấp (bít 0) vừa được chuyển vào bít báo tràn SM1.1 vừa được chuyển vào bít cao (bít 31) của từ kép IN. Trong LAD kết quả được ghi vào từ OUT. Còn trong STL kết quả vẫn nằm trong IN. Cú pháp dùng lệnh này như sau: LAD STL RRD IN N ROR W EN IN OUT N ROR DW EN IN OUT N SHL DW EN IN OUT N 52 Lệnh ROL-W Là lệnh quay các bít của từ đơn IN sang trái N lần với N là số đếm lần quay. Tại mỗi lần quay, giá trị logic của bít cao (bít 15) vừa được chuyển vào bít báo tràn SM1.1 vừa được ghi lại vào bít thấp của từ IN. Trong LAD kết quả được ghi vào từ OUT. Trong STL kết quả vẫn nằm trong IN Cú pháp dùng lệnh này như sau: LAD STL RLW IN N Lệnh ROL-DW Là lệnh quay các bít của từ kép IN sang trái N lần, trong đó N được gọi là số đếm lần quay. Tại mỗi lần quay, giá trị logic của bít cao (bít 31) vừa được chuyển vào bít báo tràn SM1.1 vừa được ghi lại vào bít thấp (bít 0) của từ kép IN. Trong LAD kết quả được ghi vào từ OUT. Trong STL kết quả vẫn nằm trong IN Cú pháp dùng lệnh này như sau: LAD STL RLD IN N 4.4 Chức năng biến đổi Hàm SEG Hàm SEG chuyển đổi số nguyên hệ cơ số Hexa trong khoảng 0 - F sang thành giá trị bit tương ứng của thanh ghi 7 nét . Hàm SEG lập giá trị các bit của thanh ghi 7 nét tương ứng với nội dung của 4 bit thấp của byte đấu vào IN. Kết quả được ghi vào byte đầu ra OUT. ROL W EN IN OUT N ROL DW EN IN OUT N 53 Sơ đồ các bit của thanh ghi 7 nét Số nguyên Thanh ghi 7 nét - g f e d c b a 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 2 0 1 0 1 1 0 1 1 3 0 1 0 0 1 1 1 1 4 0 1 1 0 0 1 1 0 5 0 1 1 0 1 1 0 1 6 0 1 1 1 1 1 1 0 7 0 0 0 0 0 1 1 1 8 0 1 1 1 1 1 1 1 9 0 1 1 0 0 1 1 1 A 0 1 1 1 0 1 1 1 B 0 1 1 1 1 1 0 0 C 0 0 1 1 1 0 0 1 D 0 1 0 1 1 1 1 0 E 0 1 1 1 1 0 0 1 F 0 1 1 1 0 0 0 1 LAD STL Toán hạng ENCO IN OUT IN (Byte) :VB, IB, QB, MB, SMB, AC, *VD, *AC, hằng số OUT(byte): VB, IB, QB, MB, SMB, AC, *VD, *AC a b c d e f g SEG EN IN OUT 54 Lệnh chuyển đổi mã BCD sang số nguyên Dạng LAD : Dạng STL : BCD_I VW0 Ý nghĩa. Lệnh này thực hiện phép biến đổi một số dạng mã BCD 16 bit chứa trong word có địa chỉ ở ngõ vào IN sang số nguyên dạng nhị phân 16 bit chứa trong word có địa chỉ ở ngõ ra OUT, địa chỉ ngõ ra có thể giống ngõ vào, thường nằm trong các vùng sau : IN: VW, T, C, IW, QW, MW, SMW, AC, AIW, const OUT: VW, T, C, IW, QW, MW, SMW, AC. 4.5 Chức năng toán học (cộng, trừ, nhân, chia) Lệnh cộng (ADD) Lệnh ADD_I Là lệnh thực hiện phép cộng các số nguyên 16-bít IN1 và IN2. Trong LAD kết quả là một số nguyên 16-bít được ghi vào OUT, tức là: IN1 + IN2 = OUT. Còn trong STL, kết quả cũng là một giá trị 16-bít nhưng được ghi vào IN2, tức là IN1 + IN2 = IN2. Lệnh ADD_DI Là lệnh thực hiện phép cộng các số nguyên 32-bít IN1 và IN2 Trong LAD, kết quả là một số nguyên 32-bít được ghi vào OUT, tức là: IN1 + IN2 = OUT. Còn trong STL, kết quả cũng là một giá trị 32-bít nhưng được ghi vào IN2, tức là IN1 + IN2 = IN2. Lệnh ADD_R Là lệnh thực hiện phép cộng các số thực 32-bít IN1 và IN2. Trong LAD, kết quả là một số thực 32-bít được ghi vào OUT, tức là: IN1 + IN2 = OUT. Còn trong STL, kết quả cũng là một giá trị thực 32-bít nhưng được ghi vào IN2, tức là IN1 + IN2 = IN2. Lệnh trừ (SUB) Lệnh SUB_I Là lệnh thực hiện phép trừ các số nguyên 16-bít IN1 và IN2 55 Trong LAD kết quả là một số nguyên 16-bít và được ghi vào OUT, tức là: IN1 - IN2 = OUT. Còn trong STL, kết quả là một giá trị 16-bít nhưng được ghi lại vào IN2, tức là IN1- IN2 = IN2. Lệnh SUB-DI Là lệnh thực hiện phép trừ các số nguyên 32-bít IN1 và IN2 Trong LAD kết quả là một số nguyên 32-bít được ghi vào IN2, tức là: IN1 - IN2 = IN2. Còn trong STL, kết quả là một giá trị 32-bít nhưng được ghi lại vào IN2, tức là IN1- IN2 = IN2. Lệnh SUB_R Là lệnh thực hiện phép trừ các số thực 32-bít IN1 và IN2 Trong LAD kết quả là một số thực 32-bít được ghi vào OUT, tức là: IN1 - IN2 = OUT. Trong STL, kết quả là một giá trị 32-bít nhưng được ghi lại vào IN2, tức là IN1- IN2 = IN2. Cú pháp dùng lệnh cộng và trừ trong LAD và STL như sau: LAD STL + I IN1 IN2 - I IN1 IN2 ADD I EN IN1 IN2 OUT SUB I EN IN1 IN2 OUT 56 + D IN1 IN2 - D IN1 IN2 + R IN1 IN2 - R IN1 IN2 Lệnh nhân (MUL) Lệnh MUL Trong LAD: Lệnh thực hiện phép nhân 2 số nguyên 16-bít IN1 và IN2 và cho ra kết quả 32-bít chứa trong từ kép OUT (4 byte). Trong STL: Lệnh thực hiện phép nhân giữa 2 số nguyên 16-bít n1 và số nguyên chứa trong từ thấp (từ 0 đến bít 15) của toán hạng 32-bít n2 (4 byte). Kết quả 32-bít được ghi vào n2. Lệnh MUL_R Trong LAD: lệnh thực hiện phép nhân hai số thực 32-bít IN1 và IN2 và cho ra kết quả 32-bít chứa trong từ kép OUT (4 byte). Trong STL: Lệnh thực hiện phép nhân giữa số thực 32-bít được ghi vào IN2. ADD DI EN IN1 IN2 OUT SUB DI EN IN1 IN2 OUT ADD R EN IN1 IN2 OUT SUB R EN IN1 IN2 OUT 57 Cú pháp dùng lệnh trong LAD và STL như sau: LAD STL MUL n1 n2 *R IN 1 IN2 Lệnh chia (DIV) Trong LAD: Lệnh thực hiện phép chia số nguyên 16-bít IN1 cho số nguyên 16-bít IN2. Kết quả 32-bít chứa trong từ kép OUT gồm thương số ghi trong mảng 16-bít từ bít 0 đến bít15 (từ thấp) và phần dư cũng 16-bít ghi trong mảng từ bít-16 đến bít-31 (từ cao). Trong STL: Lệnh thực hiện phép chia số nguyên 16-bít n1 cho số nguyên, số nguyên 16-bít nằm trong từ thấp từ bít 0 đến bít 15 của toán hạng 32-bít n2. Kết quả 32-bít được ghi lại vào n2 bao gồm thương số ghi trong mảng 16-bít từ bít 0 đến bít 15 (từ thấp) và phần dư ghi trong mảng 16-bít từ bít-16 đến bít-31 (từ cao). Lệnh DIV_R Trong LAD: lệnh thực hiện phép chia số thực 32-bít IN1 cho số thực 32-bít IN2 và cho ra kết quả 32-bít chứa trong từ kép OUT. Trong STL, lệnh thực hiện phép chia số thực 32-bít IN1 cho số thực 32-bít IN2, kết quả 32-bít được ghi lại vào IN2. MUL EN IN1 IN2 OUT MUL R EN IN1 IN2 OUT 58 Cú pháp dùng lệnh chia hai số trong LAD và STL như sau: LAD STL DIV n1 n2 /R n1 n2 Các lệnh cộng trừ một đơn vị Lệnh INC_B Là lệnh cộng số nguyên 1 vào nội dung của byte đầu vào. Trong LAD: Kết quả được ghi vào OUT, tức là: IN1 + 1 = OUT. Trong STL: Kết quả được ghi vào IN. Cú pháp dùng lệnh INCW trong LAD và trong STL như sau: LAD STL INCW IN Lệnh INC_W Lệnh cộng số nguyên 1 vào nội dung từ đơn In. Trong LAD: Kết quả được ghi vào OUT. Trong STL: Kết quả được ghi lại vào IN. DIV EN IN1 IN2 OUT DIV R EN IN1 IN2 OUT INC B EN IN OUT 59 Cú pháp dùng lệnh INCW trong LAD và trong STL như sau: LAD STL INCW IN Lệnh INC_DW (DOUBLE WORD) Là lệnh cộng số nguyên 1 vào nội dung từ kép IN Trong LAD: Kết quả được ghi vào OUT, tức là: IN + 1 = OUT Trong STL: Kết quả được ghi vào IN, tức là: IN + 1 = IN Cú pháp dùng lệnh INCD trong LAD và trong STL như sau: LAD STL INCD IN Lệnh DEC_B Là lệnh bớt nội dung của byte đầu vào đi 1 đơn vị. Trong LAD: Kết quả được ghi vào OUT, tức là: IN - 1 = OUT Trong STL: Kết quả được ghi vào IN, tức là: IN - 1 = IN Cú pháp dùng lệnh DECW trong STL và DEC_W trong LAD như sau: LAD STL DECB IN Lệnh DEC_W Là lệnh bớt nội dung IN đi 1 đơn vị. Trong LAD: Kết quả được ghi vào OUT, tức là: IN - 1 = OUT INC W EN IN OUT INC DW EN IN OUT DEC B EN IN OUT 60 Trong STL: Kết quả được ghi vào IN, tức là: IN - 1 = IN Cú pháp dùng lệnh DECW trong STL và DEC_W trong LAD như sau: LAD STL DECW IN Lệnh DEC_DW Là lệnh giảm nội dung từ kép IN đi 1 đơn vị. Trong LAD: Kết quả được ghi vào OUT, tức là: IN - 1 = OUT Trong STL: Kết quả được ghi vào IN, tức là: IN - 1 = I Cú pháp dùng lệnh DECDW trong STL hay DEC_DW trong LAD như sau: LAD STL DECD IN 4.6 Chức năng số Lệnh lấy căn bậc 2 (SQRT) Là một lệnh thực hiện lấy căn bậc hai của số thực 32-bít IN. Kết quả cũng là một số 32-bít được ghi vào từ kép OUT. Cú pháp dùng lệnh lấy căn bậc hai của một số thực như sau: LAD STL SQRT IN OUT INC W EN IN OUT INC DW EN IN OUT SQRT EN IN OUT 61 Hàm lượng giác Dạng lệnh 4.7 Các thí dụ Ví dụ 1: Viết chương trình điều khiển 8 động cơ từ D0 đến D7 theo yêu cầu sau: Nhấn Nút START động cơ D0 chạy Nhấn nút NEXT thì động đang chạy dừng và động cơ bên phải chạy Nhấn nút BACK thì động cơ đang chạy dừng và động cơ bên trái chạy Nhấn STOP thì động cơ đang chạy dừng 62 Ví dụ 2: Chương trình kiểm tra chất lượng sản phẩm Có 4 trạm kiểm tra: Dán nhãn, chai mẻ, có nước và đóng nút. Có 2 cảm biến phát hiện chai ra và vào Nếu chai nào không thoả 1 trong 4 điều khiện thì sau khi qua 4 trạm sẽ bị loại bằng van khí nén. 63 Ngõ vào: I0.0: Start I0.3: CB trạm 1 I0.1: Stop I0.4: CB trạm 2 I0.2: CB chai vaøo I0.5: CB trạm 3 I0.7: CB chai ra I0.6: CB trạm 4 Ngõ ra: Q0.0 Băng chuyền Q0.1 Van khí nén M0.3 M0.2 M0.1 M0.0 Thanh ghi chứa trạng thái trạm 1 M1.2 M1.1 M1.0 Thanh ghi chứa trạng thái trạm 2 M2.1 M2.0 Thanh ghi chứa trạng thái trạm 3 M3.0 Thanh ghi chứa trạng thái trạm 4 Chương trình LAD 64 Chương 5: XỬ LÝ TÍN HIỆU ANALOG 5.1 Tín hiệu analog Khác với tín hiệu số, ngõ vào và ngõ ra chỉ có hai trạng thái là ON hoặc OFF (mức 1 hoặc 0), tín hiệu analog có biên độ liên tục theo thời gian. Phần lớn những hiện tượng xảy ra trong thực tế đều ở dạng analog. Các cảm biến ngõ có tín hiệu ra dạng analog như: Cảm biến nhiệt độ, cảm biến áp suất, cảm biến dòng chảy, cảm biến mức.. Những cơ cấu chấp hành có tín hiệu điều khiển dạng analog: Vale tuyến tính, biến tần..... 5.2 Biểu diễn giá trị analog Đối với ngõ vào của PLC hay máy tính, tín hiệu analog không được đọc liên tục mà sẽ được lấy mẫu vào những khoảng thời gian nhất định. Sau đó tín hiệu analog được chuyển đổi sang tín hiệu số nhờ bộ A/D. Trong một khoảng thời gian nhất định, nếu số mẫu lấy càng nhiều thì độ chính xác càng tăng. Tuy nhiên mỗi bộ A/D chỉ có thể thu thập được một số mẫu nhất định trong một giây. Đối với PLC thì tần số lấy mẫu có thể đạt 20hZ. Một bộ A/D được đánh giá dựa vào các thông số như: Số bit chuyển đổi, thời gian lấy mẫu, tốc độ chuyển đổi, sai số chuyển đổi, tầm điện áp hoặc dòng điện mà bộ A/D có thể chuyển đổi. Các thông số này thường được cho bởi nhà sản xuất. Hình 5.1. Tín hiệu số và tín hiệu liên tục Hình 5.2. Lấy mẫu tín hiệu liên tục 65 Đối với PLC thì bộ chuyển đổi A/D thường sử dụng 8 bit, 12 bit, 16 bit. Tùy theo yêu cầu kỹ thuật, độ chính xác, tính kinh tế mà người lập trình chọn bộ A/D nào cho phù hợp. Cấu trúc dữ liệu của bộ A/D trong PLC S7 200. Module analog trong S7 200 thường sử dụng loại 12 bit. Tín hiệu vào của module analog ở dạng điện áp hoặc dòng điện, điện áp có thể dương hoặc âm, dữ liệu chuyển đổi có thể ở dạng đơn cực hoặc lưỡng cực. Tùy thuộc vào dạng chuyển đổi mà cách sắp xếp các bit dữ liệu cũng có sự khác nhau. 5.3 Kết nối các cảm biến và tải Một số module analog của S7 200 - Module analog EM231 - Các thông số kỹ thuật: - Cách kết nối ngõ vào của modul EM 231. Hình 5.3. Cách định dạng các bit dữ liệu trong modul analog của S7-200 66 - Swith chọn giá trị và độ phân giải. Lưu ý: Dòng điện ngõ vào: 0 đến 20mA. Độ phân giải: 5uA hay từ 1,25mV đến 2,5mV. Giá trị số ngõ vào: -32000 đến 32000(lưỡng cực) hay từ 0 đến 32000(đơn cực). - Module analog EM235 - Các thông số kỹ thuật: 67 - Cách kết nối ngõ vào, ra của modul EM 231. - Swith chọn giá trị và độ phân giải. 68 5.4 Đọc và chuẩn hoá giá trị đo Module analog thường có nhiều tầm đo khác nhau, tín hiệu ngõ vào có thể là dòng điện hoặc điện áp. Việc chuyển đổi từ tầm đo này sang tầm đo khác thì kết quả chuyển đổi thường có những sai số nhất định do cấu trúc của mạch chuyển đổi. Do vậy thông thường khi sử dụng module analog, người lập trình cần phải hiệu chỉnh trước khi sử dụng để kết quả chuyển đổi được chính xác hơn. Dưới đây trình bày việc hiệu chỉnh cho ngõ vào là điện áp, tầm đo 10V, ngõ vào chuyển đổi là AIW0. - Cấp điện cho module analog hoạt động khoảng 10 phút. - Chọn điện áp vào là 10V ( độ phân giải 2,5mV) - Chỉnh biến trở tại ngõ vào AIW0 để ngõ vào đạt giá trị 0V. - Dùng chương trình đọc giá trị analog vào và quan sát giá trị. Nếu chưa bằng không thì hiệu chỉnh độ lợi (Gain) để đạt giá trị = 0. - Chỉnh biến trở tại ngõ vào AIW0 để ngõ vào đạt giá trị 10V. - Dùng chương trình đọc giá trị analog vào và quan sát giá trị. Nếu chưa bằng 32000 thì hiệu chỉnh độ lợi (Gain) để đạt giá trị = 32000. 5.5 Hiển thị giá trị đo Tuỳ thuộc tín hiệu analog nối với ngõ vào nào của các modul analog mà giá trị chuyển đổi sẽ được lưu vào địa chỉ tương ứng. Ví dụ: Kênh A: AIW0 Kênh B: AIW2 Kênh C: AIW4 Kênh D: AIW6 69 Đọc tín hiệu Analog: Để đọc tín hiệu analog ta cần xác định tín hiệu analog là loại gì (0-10V, 4-20mA, cách đấu 2 dây, 4 dây) . Bước kế tiếp là phải chọn đúng loại tín hiệu trên phần cứng ( Chọn loại tín hiệu trên Modul đọc kênh analog) và chọn cấu hình phần cứng phù hợp Xác định tín hiệu đơn cực hay lưỡng cực Xác định địa chỉ cho từng kênh analog ( vd: PIW 256) Sử dụng hàm SCALE ( với S7-300) như sau : Trước khi thực thi: IN- MW=22 HI_LIM- MD20=100.0 LO_LIM- MD30=0.0 OUT- MD40=0.0 BIPOLAR – I2.0= TRUE Sau khi thực thi: OUT- MD40=50.03978 Hàm SCALE sẽ thực hiện việc cân chỉnh tín hiệu ở IN kết quả lưu trữ ở OUT OUT = (Float(IN)-K1)/(K2-K1)*(HI_LIM – LO_LIM)+ LO_LIM Tín hiệu BIPOLAR K1= - 27648 , K2= +27648 Tín hiệu UNBIPOLAR K1= 0 , K2= +27648 RET_VAL trả về lỗi nếu hàm SCALE có vấn đề. Câu hỏi ôn tập chương 5: 1. Chuẩn hoá giá trị đo modul analog có ý nghĩa gì ? 2. Các địa chỉ vùng nhớ nào dùng lưu trữ các giá trị analog? 70 Tài liệu tham khảo [1]. Nguyễn Doãn Phước, Phan Xuân Minh- Tự động hoá với Simatic S7-200 – NXB Nông Nghiệp Hà nội – 2002. [2]. S7-200 Progammable Controller System Manual – Siemens. [3]. Tài liệu thực hành PLC S7-200 - Trung Tâm Việt Đức. [4]. Tài liệu trực tuyến: www.siemens.com.
File đính kèm:
- bai_giang_dieu_khien_lap_trinh_i_nguyen_dinh_hoang.pdf