Cũng giống nhƣ các PLC cùng họ khác, PLC S7-1200 gồm 4 bộ phận cơ bản: bộ xử lý, bộ nhớ, bộ nguồn, giao tiếp xuất / nhập.
Bộ xử lý còn đƣợc gọi là bộ xử lý trung tâm (CPU), chứa bộ vi xử lý, biên dịch các tín hiệu nhập và thực hiện các hoạt động điều khiển theo chƣơng trình đƣợc lƣu trong bộ nhớ của PLC. Truyền các quyết định dƣới dạng tín hiệu hoạt động đến các thiết bị xuất.
Bộ nguồn có nhiệm vụ chuyển đổi điện áp AC thành điện áp DC (24V) cần thiết cho bộ xử lý và các mạch điện trong các module giao tiếp nhập và xuất hoạt động.
Bộ nhớ là nơi lƣu trữ chƣơng trình đƣợc sử dụng cho các hoạt động điều khiển dƣới sự kiểm soát của bộ vi xử lý.
Các thành phần nhập và xuất (input / output) là nơi bộ nhớ nhận thông tin từ các thiết bị ngoại vi và truyền thông tin đến các thiết bị điều khiển. Tín hiệu nhập có thể từ các công tắc, các bộ cảm biến… Các thiết bị xuất có thể là các cuộn dây của bộ khởi động động cơ, các van solenoid…
Chƣơng trình điều khiển đƣợc nạp vào bộ nhớ nhờ sự trợ giúp của bộ lập trình hay bằng máy vi tính.
Hình 2. 4 Cấu trúc của PLC
Bảng 2.1. Một số CPU S7-1200
Tính năng CPU 1211C CPU
1212C CPU 1214C CPU 1215C Kích thƣớc vật lý (mm) 90x100x75 90x100x75 110x100x7 5 130x100x75 Bộ nhớ ngƣời
Work 30 Kbytes 50 Kbytes 75 Kbytes 100 Kbytes Load 1 Mbyte 1 Mbyte 4 Mbyte 4 Mbyte Retentiv 10 Kbytes 10 Kbytes 10 Kbytes 10 Kbytes
Tính năng CPU 1211C CPU 1212C CPU 1214C CPU 1215C I/O tích hợp trên CPU Kiểu số 6 Inputs / 4 Out 8 Inputs / 6 Out 14 Inputs / 10 Out 14 Inputs / 10 Out Kiểu
tƣơng tự 2 inputs 2 inputs 2 inputs
2 inputs / 2 outputs Kích
thƣớc bộ đệm
Inputs 1024 bytes 1024 bytes 1024 bytes 1024 bytes
Outputs 1024 bytes 1024 bytes 1024 bytes 1024 bytes Bit nhớ (M) 4096 bytes 4096 bytes 4096 bytes 4096 bytes Module mở rộng vào ra (SM) none 2 8 8 Board tín hiệu (SB) Board pin (BB) Board truyền thông (CB) 1 1 1 1
Module truyền thông
(CM) 3 3 3 3 Bộ đếm tốc độ cao Total 3 built – in I/O, 5 with SB 4 built – in I/O, 6 with SB 6 6 Singe phase 3 at 100kHz SB: 2 at 30kHz 3 at 100kHz 1 at 30kHz 3 at 100kHz 3 at 30kHz 3 at 100kHz 3 at 30kHz SB:2at30kHz Quadrature phase 3 at 80kHz SB: 2 at 20kHz 3 at 80kHz 1 at 20kHz SB: 2 at 20kHz 3 at 80kHz 3 at 20kHz 3 at 100kHz 3 at 20kHz Ngõ ra xung 4 4 4 4
Tính năng CPU 1211C CPU
1212C CPU 1214C CPU 1215C
Lƣu trữ thời gian đồng hồ thời gian thực
Chuẩn là 20 ngày, nhỏ nhất là 12 ngày ở nhiệt độ 400C (duy trì bằng tụ điện có điện dung lớn)
PROFINET 1 cổng truyền thông Ethernet 2 cổng truyền thông Ethernet Tốc độ thực thi phép toán thực 2.3 µs/lệnh Tốc độ thực thi logic Boolean 0.08 µs/lệnh 2.2.3. Phân bộ vùng nhớ:
PLC có 3 loại bộ nhớ sử dụng là Load memory, Work memory và Retentive Memory:
Load memory chứa bộ nhớ của chƣơng trình khi down xuống.
Work memory là bộ nhớ lúc làm việc.
System memory thì có thể setup vùng này trong Hardware config, chỉ cần chứa các dữ liệu cần lƣu vào đây.
Bảng 2. 2 Phân vùng bộ nhớ. Bộ nhớ CPU 1211C CPU 1212C CPU 1214C Load memory 1 Mb 2 Mb Work memory 25Kb 50 Kb System memory 2 Kb 2 Kb 2.2.4. Tập lệnh PLC S7-1200: Bảng 2.3: Tập lệnh xử lý bít.
Tiếp điểm thƣờng hở sẽ đóng khi giá trị của bit có địa chỉ là n bằng 1.
Tiếp điểm thƣờng đóng sẽ đóng khi giá trị của bit có địa chỉ n là 0.
Toán hạng n: I, Q, M, L, D.
Giá trị của bit có địa chỉ là n sẽ bằng 1 khi đầu vào của lệnh này bằng 1 và ngƣợc lại.
Toán hạng n: Q, M, L, D.
Chỉ sử dụng một lệnh out cho 1 địa chỉ.
Giá trị của bit có địa chỉ là n sẽ bằng 1 khi đầu vào của lệnh này bằng 0 và ngƣợc lại.
Toán hạng n: Q, M, L, D.
Chỉ sử dụng một lệnh out not cho 1 địa chỉ.
Giá trị của các bit có địa chỉ là n sẽ bằng 1 khi đầu vào của lệnh này bằng 1. Khi đầu vào của lệnh bằng 0 thì bit này vẫn giữ nguyên trạng thái.
Toán hạng n: Q, M, L, D.
Giá trị của các bit có địa chỉ là n sẽ bằng 0 khi đầu vào của lệnh này bằng 1. Khi đầu vào của lệnh bằng 0 thì bit này vẫn giữ nguyên trạng thái.
Toán hạng n: Q, M, L, D.
Bảng 2.4: Tập lệnh Timer. Timer trễ không nhớ – TON
Khi ngõ vào IN ngừng tác động thì reset và dừng hoạt động Timer. Thay đổi PT khi Timer vận hành không có ảnh hƣởng gì.
Bảng 2.5: Tập lệnh Counter. Counter đếm lên – CTU.
Giá trị bộ đếm CV đƣợc tăng lên 1. Khi tín hiệu ngõ vào CU chuyển từ 0 lên 1. Ngõ ra Q đƣợc tác động lên 1 khi CV >= PV. Nếu trạng thái R = Reset đƣợc tác động thì bộ đếm CV = 0.
Bảng 2. 6: Tập lệnh toán học.
Lệnh so sánh dùng để so sánh hai giá trị IN1 và IN2 bao gồm IN1= IN2, IN1>= IN2, IN1<= IN2, IN1< IN2, IN1> IN2, IN1<> IN2.
So sánh 2 kiểu dữ liệu giống nhau, nếu lệnh so sánh thỏa mãn thì ngõ ra sẽ là mức 1 = TRUE (tác động mức cao) và ngƣợc lại. Kiểu dữ liệu so sánh là: SInt, Int, Dint, USInt, UDInt, Real,
Lreal, String, Time, DTL, Constant.
Lệnh cộng ADD: OUT = IN1 + IN2. Lệnh trừ SUB : OUT = IN1 - IN2.
Tham số IN1, IN2 phải cùng kiểu dữ liệu: Sint, Int, Dint, USInt, Uint, UDInt, Real, Lreal, Constant.
Tham số OUT có kiểu dữ liệu: Sint, Int, Dint, USInt, Uint, UDInt, Real, Lreal.
Tham số ENO = 1 nếu không có lỗi xảy ra trong quá trình thực thi. Ngƣợc lại ENO = 0 khi có lỗi, một số lỗi xảy ra khi thực thi lệnh này:
Kết quả toán học nằm ngoài phạm vi của kiểu dữ liệu. Real/Lreal: Nếu một trong những giá trị đầu vào là NaN sau đó đƣợc trả về NaN.
ADD Real/Lreal: Nếu cả hai giá trị IN là INF có dấu khác nhau, đây là một khai báo không hợp lệ và đƣợc trả về NaN.
Bảng 2.7: Tập lệnh di chuyển.
Lệnh Move di chuyển nội dung ngõ vào IN đến ngõ ra OUT mà không làm thay đổi giá trị ngõ IN.
Tham số:
EN: cho phép ngõ vào. ENO: cho phép ngõ ra. IN: nguồn giá trị đến. OUT1: nơi chuyển đến.
2.2.5. Sơ đồ đấu dây:
Hình 2. 5 Sơ đồ đấu dây CPU 1214C DC/DC/DC.
2.2.6. Vòng quét và thứ tự lệnh thực thi trên PLC S7-1200
2.2.6.1. Giới thiệu về vòng quét trên PLC S7-1200
Trên PLC siemen s7-1200 chƣơng trình chạy bên trong cpu sẽ thực hiện lặp lại chƣơng trình liên tục từ trên xuống dƣới. Mỗi vòng lặp chƣơng trình đƣợc gọi là vòng quét của PLC. Trong mỗi vòng quét chƣơng trình thì đọc trạng thái các ngõ vào sau đó thực hiện các lệnh có trong vòng quét xong, sau đó xuất tín hiệu tác động lên ngõ vào ra. Vòng quét trên PLC Siemens thƣờng là chƣơng trình nằm trong khối OB1.
Thời gian thực hiện hết 1 vòng quét phụ thuộc vào hai yếu tố nhƣ sau:
Một là số câu lệnh có trong vòng quét của chƣơng trình, càng nhiều câu lệnh thì thời gia thực hiện vòng quét sẽ càng lớn.
Tiếp theo là tốc độ xử lý lệnh của CPU. Nếu tốc độ xử lý lệnh của cpu càng nhỏ thì thời gian vòng quét càng ngắn.
Việc tính toán thời gian quét để giúp chúng ta có thể tính toán sơ bộ đƣợc thời gian cập nhật các ngõ vào ra của PLC để có thể tính toán sai số của hệ thống trong quá trình viết chƣơng trình.
Về mặt nguyên tắc chung thì thứ tự thực hiện trên PLC S7-1200 sẽ là thứ tự từ trên xuống dƣới và từ trái qua phải. Tuy nhiên thƣờng phải tuân theo một số quy định nhƣ sau:
Trong cùng một nhánh thì những lệnh ở bên trái sẽ thực hiện trƣớc sau đó tới các lệnh ở bên phải.
Nếu ở hai nhánh khác nhau thì sẽ ƣu tiên lệnh ngõ ra ở nhánh trên trƣớc.
Hình 2.6. Thứ tự thực hiện lệnh trên PLC S7-1200
Lƣu ý việc hiểu đƣợc thứ tự thực hiện các lệnh trong PLC S7-1200 sẽ giúp bạn có kiến thức tốt hơn trong qá trình lập trình.
2.2.7. Một số Ngôn ngữ lập trình của PLC S7-1200
2.2.7.1. Ngôn ngữ lập trình LAD
Ladder còn đƣợc biết đến với nhiều tên gọi khác nhau nhƣ: sơ đồ bậc thang (ladder diagram “LD”) hay là LAD và là ngôn ngữ lập trình đƣợc sử dụng để lập trình PLC. Nó là một ngôn ngữ lập trình PLC đồ họa nhằm thể hiện các hoạt động logic với ký hiệu tƣợng trƣng. Lader logic đƣợc tạo ra từ các nấc thang logic, tạo thành trông giống nhƣ một cái thang, do đó có tên là “Ladder Logic” hay sơ đồ bậc thang.
Ladder Logic “LAD” không chỉ là một ngôn ngữ lập trình cho PLC. Nó là một trong những ngôn ngữ lập trình PLC đƣợc tiêu chuẩn hóa. Điều này đơn giản có nghĩa là Ladder Logic đã đƣợc theo một tiêu chuẩn. Tiêu chuẩn đó đƣợc gọi là IEC 61131-3
Ƣu điểm:
LAD với cấu trúc bậc thang dễ sắp xếp, tổ chức và tiện theo dõi.
Cho phép ghi chú thích
Hỗ trợ chỉnh sửa online
Nhƣợc điểm: một số lập trình chức năng không có sẵn, đặc biệt là khó khăn trong việc lập trình chuyển động hoặc phân luồng.
Một số hãng sản xuất PLC hỗ trợ ngôn ngữ lập trình LAD (hầu hết các hãng PLC đều hỗ trợ ngôn ngữ này) nhƣ: AB, Mitsubishi, B&R, ....
Hình 2.7. Ngôn ngữ lập trình LAD
2.2.7.2. Ngôn ngữ lập trình PLC FBD
FBD là viết tắt của từ “Function Block Diagram” tạm dịch là “Sơ đồ khối chức năng”, là một trong những ngôn ngữ lập trình PLC đƣợc sử dụng rộng rãi. FBD là một ngôn ngữ lập trình rất dễ học, cung cấp nhiều khả năng và chúng ta có thể sử dụng một ngôn ngữ FBD này để lập trình cho bất kỳ chức năng nào trong một chƣơng trình PLC.
FBD là ngôn ngữ lập trình PLC chính thức đƣợc mô tả theo tiêu chuẩn IEC 61131-3 và ngôn ngữ cơ bản cho tất cả các lập trình viên PLC. FBD là ngôn ngữ lập trình tuyệt vời để triển khai mọi thứ từ logic đến timer, bộ điều khiển PID và thậm chí hệ thống SCADA, ...v.v.
Ƣu điểm:
Hoạt động tốt với các chức năng điều khiển chuyển động
Trực quan và dễ dàng hơn đối với một số ngƣời dùng
Có thể gộp nhiều dòng chƣơng trình thành một khối hoặc một số khối chức năng
Nhƣợc điểm: Có thể trở nên vô tổ chức khi sử dụng ngôn ngữ này vì bạn có thể đặt các khối chức năng này ở bất kỳ đâu trên đầu trang. Điều này cũng dẫn đến việc khắc phục sự cố khó khăn hơn.
Một số hãng sản xuất PLC hỗ trợ ngôn ngữ lập trình FBD nhƣ: AB, Simens, ...v.v.
Hình 2.8. Ngôn ngữ lập trình FBD
2.2.7.3. Ngôn ngữ lập trình PLC ST/STL
Structured Text “ST/STL” là ngôn ngữ lập trình PLC đạt chuẩn IEC 61131- 3. Ngôn ngữ lập trình ST dựa trên nền tảng văn bản, trong khi ngôn ngữ lập trình LAD và FBD dựa trên nền tảng đồ họa. ST là ngôn ngữ cấp cao giống nhƣ Basic và “C”
Khi mới tìm hiểu về lập trình PLC, có v tốt hơn nếu sử dụng ngôn ngữ lập trình để lâp trình PL. Tuy nhiên điều với các chƣơng trình PLC nhỏ và vừa, chƣơng trình của bạn sẽ chiếm không gian nhỏ hơn nhiều phân luồng / logic sẽ dễ đọc và hiểu hơn.
Ngôn ngữ lập trình ST đƣợc sao chép một cách tƣơng đối dễ dàng giữa các loại PLC khác nhau.
Đây đƣợc coi là ngôn ngữ lập trình PLC dễ sử dụng nhất cho các chƣơng trình sử dụng các phép toán học, công thức, thuật toán và các chƣơng trình có lƣợng dữ liệu lớn
Cấu trúc lập trình ngôn ngữ ST gần giống với các ngôn ngữ phổ biến khác nhƣ C++, C#, Pascal, V, …
Ngôn ngữ ST dựa trên nền tảng văn bản nên chiếm ít dung lƣợng, dễ mô tả, chú thích và in ra dễ dàng hơn các ngôn ngữ lập trình PLC khác.
Ƣu điểm:
Tính tổ chức cao và có khả năng tính toán các phép toán học lớn.
Cho phép lập trình một số chức năng không có ở ngôn ngữ khác nhƣ (LAD) Nhƣợc điểm:
Khó thành thạo các cú pháp
Khó khắc phục lỗi
Rất khó để chỉnh sửa online
Hình 2.9. Ngôn ngữ lập trình ST/SLT
2.2.7.4. Ngôn ngữ lập trình C++
C++ là một phiên bản mở rộng của ngôn ngữ lập trình C, đƣợc tạo ra bởi Bjare Stroustrup. Một nhà khoa học ngƣời Đan Mạch tại phòng thí nghiệm AT&T Bell vào năm 1979, đƣợc ISO công nhận vào đầu năm 1998, lần phê chuẩn tiếp theo là vào năm 2003 (ngƣời ta gọi là C++ 03) và sau đó các phiên bản cập nhật C++1, C++4 và C++17.
C là ngôn ngữ thủ tục, trong khi C++ là hƣớng đối tƣợng, lập trình thủ tục tuân theo các nguyên tắc từng bƣớc của các hàm, trong khi lập trình hƣớng đối tƣợng tập trung vào các đối tƣợng, kế thừa, ….
Một số hãng sản xuất PLC hỗ trợ ngôn ngữ lập trình C/C++ nhƣ: B&R, Mitsubishi, Unitronnics, ...
2.3. Tổng quan về phần mềm SOLIDWORKS :
SOLIDWORKS là phần mềm thiết kế 3D tham số chạy trên hệ điều hành Windows và có mặt từ năm 1995, đƣợc tạo bởi công ty SOLIDWORKS Dassault Systèmes, là một công ty thành viên của tập đoàn công nghệ hàng đầu thế giới Dassault Systèmes, S. A. (Vélizy, Pháp). Cộng đồng ngƣời dùng SOLIDWORKS bản quyền trên thế giới hiện là gần 6 triệu ngƣời với khoảng 200.000 doanh nghiệp và tập đoàn.
Hình 2.10 Logo biểu tƣợng phần mềm SOLIDWORKS.
Phần mềm Solidworks cung cấp cho ngƣời dùng những tính năng tuyệt vời nhất về thiết kế các chi tiết các khối 3D, lắp ráp các chi tiết đó để hình thành nên nhƣng bộ phận của máy móc, xuất bản vẽ 2D các chi tiết đó là những tính năng rất phổ biến của phần mềm Solidworks, ngoài ra còn có những tính năng khác nữa nhƣ: Phân tích động học (motion), phân tích động lực học (simulation). Bên cạnh đó phần mềm còn tích hợp modul Solidcam để phục vụ cho việc gia công trên CNC nhờ có phay Solidcam và tiện Solidcam hơn nữa bạn cũng có thể gia công nhiều trục trên Solidcam, modul 3Dquickmold phục vụ cho việc thiết kế khuôn.
2.3.2. Các chức năng chính của phần mềm SOLIDWORKS:
2.3.2.1. Khả năng thiết kế mô hình 3D hoàn hảo:
Đây là một trong những tính năng khá nỗi bật của phần mềm solidworks. Thông quan việc thiết kê các các biên dạng 2D bạn sẽ dựng đƣợc các khối 3D theo yêu cầu, tíng năng này khá là dễ học thông qua các tài liệu thiết kế trên
solidworks. Nhƣng vấn đề ở đây là bạn cần phải làm thật nhiều bài tập để có thể nhớ lâu cũng nhƣ là vận dụng linh hoạt các lệnh.
Hình 2.11. Thiết kế mô hình 3D bằng phần mềm SolidWorks.
2.3.2.2. Tính năng lắp ráp các chi tiết:
Đây là một tính năng mà hầu nhƣ các phần mềm CAD/CAM nào cũng có. Các chi tiết 3D sau khi thiết kế xong có thể lắp ráp lại với nhau tạo thành một bộ phận máy hoặc một máy hoàn chỉnh. Xây dựng các đƣờng dẫn thể hiện quy trình lắp ghép. để hiểu rõ về tính năng này hơn bạn có thể xem tài liệu hƣớng dẫn lắp ráp trên solidworks.
2.3.2.3. Xuất bản trên phần mềm SOLIDWORKS:
Phần mềm Solidworks cho phép ta tạo các hình chiếu vuông góc các chi tiết hoặc các bản lắp với tỉ lệ và vị trí do ngƣời sử dụng quy định mà không ảnh hƣởng đến kích thƣớc.
Công cụ tạo kích thƣớc tự động và kích thƣớc theo quy định của ngƣời sử