Simulacrum, từ simulacrum Latin, là một sự bắt chước, giả mạo hoặc hư cấu. Khái niệm này được liên kết với mô phỏng, đó là hành động mô phỏng .Một...
Tự học ngôn ngữ lập trình ST/STL (Structured Text) cho PLC
Mặc dù ngôn ngữ lập trình LAD là một ngôn ngữ lập trình dễ dành cho người mới bắt đầu, nhưng nó có thể hơi khó đọc và hiểu. Đó là lý do vì sao có rất nhiều người coi ST là một ngôn ngữ lập trình PLC tốt hơn, và bạn có thể tìm hiểu tất cả về nó trong bài chia sẻ này.
Hầu như chúng ta rất khó xác định phần mở đầu và phần kết thúc trong một chương trình PLC lớn, phức tạp được viết bằng LAD (đặc biệt là đối với những người chưa có hoặc ít kinh nghiệm lập trình). Vì vậy, những gì có vẻ dễ học (đặc biệt đối với kỹ thuật viên và kỹ sư điện) không phải lúc nào cũng là ngôn ngữ tốt nhất để lập trình. Với chương trình LAD mà bạn viết ra, thì đối với bạn nó tương đối dễ hiểu, tuy nhiên khi đưa nó cho một kỹ sư, lập trình viên khác thì nó có thể sẽ khá là khó hiểu.
Bạn hoàn toàn có thể tìm hiểu thêm ví dụ về LAD này và cho tôi biết, bạn mất bao nhiêu thời hạn để hiểu nó ?
Đó là lý do, mà một ngôn ngữ lập trình PLC khác tốt hơn được sinh ra và phát triển. Đó là ngôn ngữ “Structured Text” hay được gọi tắt là ST hay STX hoặc STL (Structured Text Logic), tạm dịch ra tiếng việt là “văn bản có cấu trúc”.
Ngôn ngữ lập trình ST là gì?
ST là ngôn ngữ lập trình PLC được PLCOpen định nghĩa trong IEC 61131-3. Ngôn ngữ lập trình ST dựa trên dạng văn bản, còn LAD hay FBD là dựa trên dạng đồ họa.
Khi mới mở màn học lập trình PLC, có vẻ như sẽ tốt hơn nếu sử dụng ngôn ngữ lập trình đồ họa để lập trình PLC. Tuy nhiên, theo quan điểm cá thể, điều đó chỉ đúng với những chương trình PLC vừa và nhỏ, không quá phức tạp. Bằng cách sử dụng ngôn ngữ lập trình PLC dựa trên văn bản, chương trình của bạn sẽ chiếm khoảng trống nhỏ hơn nhiều và luồng / logic sẽ dễ đọc và dễ hiểu hơn. Ví dụ, bạn hoàn toàn có thể chia tỷ suất đầu vào hoặc đầu ra analog của PLC chỉ với một dòng mã để đặt những cảnh báo nhắc nhở cho giải pháp SCADA của bạn .
Một ưu điểm của ngôn ngữ lập trình ST là hoàn toàn có thể tích hợp những ngôn ngữ lập trình khác nhau. Thậm chí hoàn toàn có thể sử dụng những khối công dụng chứa những công dụng được viết bằng ngôn ngữ ST. Tuy nhiên, ST là một ngôn ngữ lập trình được chuẩn hóa và hiện tại thì không phải hãng PLC nào cũng tương hỗ. Nó thường được những hãng sản xuất PLC lớn, phổ cập tương hỗ ( đặc biệt quan trọng là của những hãng châu Âu ) hoàn toàn có thể kể đến như : Siemens, Rockwell, Tập đoàn Mitsubishi, Schneider, Omron, Beckhoff, ABB, ..
ST là ngôn ngữ lập trình cấp cao
Nếu bạn đã từng thao tác với những ngôn ngữ lập trình cấp cao như PHP, Python hay C, thì nó sẽ giúp bạn học ngôn ngữ ST một cách nhanh gọn và thuận tiện. Cú pháp của ngôn ngữ lập trình ST được tăng trưởng trông giống như những cú pháp của những ngôn ngữ lập trình cấp cao như : vòng lặp, biến, điều kiện kèm theo và toán tử .
Tuy nhiên, nếu bạn chưa khi nào thao tác với một ngôn ngữ lập trình cấp cao thì ST sẽ hoàn toàn có thể là một điểm khởi đầu tuyệt vời dành cho bạn để hoàn toàn có thể biết và sử dụng được những ngôn ngữ và cú pháp đó. Bạn cần phải xem xét thêm trước khi chọn một ngôn ngữ lập trình để khởi đầu một quy trình điều tra và nghiên cứu và học tập của mình. Đôi khi, xuất phát từ những ngôn ngữ lập trình đơn thuần hơn sẽ hoàn toàn có thể là một ý tưởng sáng tạo hay để bạn hoàn toàn có thể hiểu hơn về những logic và PLC hoạt động giải trí .
Trước khi bạn quyết định hành động điều tra và nghiên cứu và học ngôn ngữ lập trình ST, bạn nên xem qua ví dụ chương trình PLC được viết bằng ngôn ngữ ST này .
PROGRAM stexample VAR x : BOOL; END_VAR x := TRUE; REPEAT x := FALSE; UNTIL x := FALSE; END_REPEAT; END_PROGRAM;
Bạn hãy thử xem, nó có quen thuộc với bạn hay không ? Bạn có biết hay đoán được những công dụng của mỗi dòng lệnh hay không ? Từ đó hãy đưa ra quyết định hành động và trang nghiêm, kiên trì nghiên cứu và điều tra, khám phá, học tập nếu bạn chọn sát cánh với ngôn ngữ ST nhé !
Cấu trúc một chương trình ST
Đầu tiên bạn cần tìm hiểu và khám phá về cấu trúc và cú pháp của chương trình ST. Khi bạn hiểu cấu trúc và cú pháp, bạn sẽ hiểu phương pháp mà những dòng chương trình hoạt động giải trí .
Từ ví dụ ở trên, ta cũng có thể thấy được rằng một chương trình được bắt đầu bằng PROGRAM và kết thúc bằng END_PROGRAM. Mọi thứ nằm ở giữa là chương trình PLC của bạn.
END_PROGRAM ở đây không có nghĩa là kết thúc hoàn toàn. Khi PLC đến END_PROGRAM thì chu kỳ quyét của PLC sẽ bắt đầu lại và chương trình của bạn sẽ tự lặp lại.
Điều này cũng giống như LAD hoặc bất kể ngôn ngữ lập trình PLC nào khác – nó sẽ chạy đi chạy lại, lặp đi lặp lại nhiều lần. Nếu bạn đã từng lập trình vi tinh chỉnh và điều khiển Arduino UNO thì PROGRAM / END_PROGRAM sẽ tương tự như vòng lặp vô hạn trong C .
Lưu ý:
Khi bạn đang lập trình bằng ngôn ngữ ST, bạn thường sẽ không cần phải viết cú pháp PROGRAM / END_PROGRAM. Nó sẽ được triển khai bởi ứng dụng lập trình PLC và bạn chỉ cần phải viết những gì bạn muốn bên trong cấu trúc đó .
Việc phân luồng lập trình những chương trình PLC bằng ngôn ngữ ST cũng giống như LAD : được triển khai từng dòng một .
Cú pháp của ST
Các cú pháp của một ngôn ngữ lập trình là những mã lệnh đã được mã hóa và được định nghĩa theo tiêu chuẩn của ngôn ngữ đó .
Như bạn hoàn toàn có thể thấy trong ví dụ, ST chứa những dấu hai chấm, dấu chấm phẩy và những ký hiệu khác. Tất cả những hình tượng này có một ý nghĩa và được sử dụng để bộc lộ cho một cái gì đó. Một số trong số chúng là toán tử, một số ít là hàm, câu lệnh hoặc biến .
Chi tiết của những cú pháp sẽ được chúng tôi lý giải trong từng cú pháp đơn cử bên dưới. Tuy nhiên, ST có 1 số ít quy tắc chung về cú pháp mà bạn nên biết. Bạn không cần phải ghi nhớ toàn bộ những quy tắc cú pháp này ngay lập tức, tuy nhiên nó sẽ giúp ích cho bạn sau này :
- Tất cả các câu lệnh được chia bằng dấu chấm phẩy: ST bao gồm các câu lệnh và dấu chấm phẩy được sử dụng để phân tách chúng.
- Ngôn ngữ ST không phân biệt chữ hoa chữ thường: mặc dù việc sử dụng chữ hoa và chữ thường để dễ đọc, tuy nhiên điều này là không cần thiết.
- Dấu cách “spaces” không có chức năng: dấu cách không có chức năng gì trong ngôn ngữ ST, tuy nhiên chúng ta nên sử dụng nó để giúp chương trình dễ đọc hơn.
Điều quan trọng nhất cần hiểu là khi tất cả chúng ta viết chương trình PLC với ngôn ngữ ST thì máy tính sẽ dịch chương trình này sang ngôn ngữ mà PLC hoàn toàn có thể hiểu được .
Khi tải chương trình lên PLC, ứng dụng lập trình sẽ biên dịch chương trình. Điều này có nghĩa là nó sẽ dịch mã này sang một loại mã máy mà PLC hoàn toàn có thể thực thi. Trình biên dịch sử dụng những cú pháp của ngôn ngữ lập trình để hoàn toàn có thể hiểu được chương trình tất cả chúng ta viết ra .
Ví dụ : mỗi khi trình biên dịch thấy dấu chấm phẩy, nó sẽ biết rằng đã đến phần cuối của câu lệnh hiện tại. Trình biên dịch sẽ đọc mọi thứ cho đến khi nó chạm đến dấu chấm phẩy và sau đó sẽ thực thi câu lệnh đó .
Cú pháp bình luận (comment) trong ST
Trong ngôn ngữ lập trình ST, bạn hoàn toàn có thể viết những văn bản mà chương trình không thực thi ( không đọc ) chúng. Tính năng này được sử dụng để đưa ra phản hồi ( chú thích hay nhận xét ) trong chương trình .
Bình luận trong chương trình thực sự rất có ích, nếu bạn là người mới mở màn, bạn nên luôn sử dụng phản hồi cho mỗi câu lệnh hay mỗi đoạn mã của mình. Sau này, nó sẽ giúp bạn hiểu những đoạn mã của mình thuận tiện hơn .
Trong ngôn ngữ ST, bạn hoàn toàn có thể đưa ra phản hồi một dòng hoặc nhiều dòng .
Một dòng bình luận:
// comment
Bình luận sau khi kết thúc một dòng lệnh:
hoặc
Nhiều dòng bình luận:
/* start comment ... end comment */
hoặc
(* start comment ... end comment *)
Có nên bình luận mọi chi tiết?
Khi bạn dần trở nên tốt hơn hay thành thạo ngôn ngữ ST, bạn nên sử dụng ít phản hồi hơn. Bởi vì sao ? Chúng ta cùng tìm hiểu và khám phá đằng sau một câu truyện :
Một người học trò hỏi thầy của mình rằng: “Hôm trước, em có tìm hiểu thông tin về những bậc kỳ tài là lập trình viên, em thấy thông tin về một lập trình viên người Việt Nam được đứng trong top 10 những người lập trình viên xuất sắc trong lịch sử. Em mới tò mò tìm kiếm các chương trình mà anh ấy từng viết. Có rất nhiều chương trình mà anh ấy đã viết, nhưng kỳ lạ thay, những thông tin đưa tin về anh ấy đều nói rằng: anh ấy gần như không bao giờ thiết kế chương trình, chú thích trong chương trình hay chạy thử nghiệm chương trình của mình. Tuy nhiên, tất cả những người biết anh ấy đều coi anh ấy là một trong những lập trình viên giỏi nhất thế giới. Tại sao lại vậy ạ?”
Thầy của cậu học trò đáp: “người lập trình đó đã sống ở trong chương trình. Anh ấy đã vượt ra khỏi nhu cầu cần thiết kế; anh ta không trở nên tức giận khi hệ thống gặp sự cố, anh ta coi nó là niềm vui và bơi ở trong đó mà không cần quan tâm những thứ khác. Anh ấy đã vượt ra ngoài nhu cầu về chú thích, anh ta không còn quan tâm xem có ai đó khác nhìn thấy chương trình của mình tốt hay không tốt. Anh ấy đã vượt ra khỏi sự cần thiết của việc chạy thử nghiệm, bởi mỗi chương trình của anh ấy đều hoàn hảo, thanh thoát và trang nhã, chúng đã thể hiện rõ ràng mục đích. Thực sự, anh ta đã và đang sống trong nó”.
Mặc dù điều này hoàn toàn có thể bạn chưa cần chăm sóc, tuy nhiên bạn nên nỗ lực viết những đoạn mã của mình dễ hiểu nhất hoàn toàn có thể, ngay cả khi không dùng phản hồi. Cách bạn hoàn toàn có thể thực thi việc này một cách đơn thuần là bằng cách sử dụng những khoảng chừng trắng để làm cho những mã lệnh dễ đọc hơn .
Tuy nhiên, hiện tại bạn không nên lo ngại về việc viết những phản hồi, chú thích trong chương trình. Bạn là người mới mở màn, vậy hãy viết bao nhiêu tùy thích, miễn làm thế nào điều đó là tốt nhất với bạn .
Câu lệnh trong ST
Ngôn ngữ lập trình ST gồm có những câu lệnh, vậy câu lệnh là gì ?
Bạn hoàn toàn có thể hiểu đơn thuần câu lệnh trong ST cũng giống như câu lệnh đến từ phía bạn, hay từ phía cá thể nào đó hoặc tổ chức triển khai nào đó. Và trong lập trình PLC, những câu lệnh gần như giống nhau. Một “ câu lệnh ” là bạn nhu yếu PLC phải làm gì. Hãy lấy câu lệnh tiên phong làm ví dụ :
X: BOOL;
Trình biên dịch sẽ đọc đây là một câu lệnh do tại khi nó đến dấu chấm phẩy, nó biết rằng đây là phần cuối của câu lệnh đó. Hãy nhớ rằng, những câu lệnh được phân tách bằng dấu chấm phẩy. Đó là quy tắc cú pháp của ngôn ngữ này .
Trong câu lệnh này, bạn nhu yếu PLC tạo một biến có tên là X và biến này phải là kiểu BOOL .
Biến trong ST
Trước khi chúng ta tìm hiểu sâu hơn về các câu lệnh, chúng ta cũng quay lại các từ khóa mà chúng tôi đã đề cập trước đó. Bạn có thể thấy, biến X được xác định ở giữa hai từ khóa khác là VAR và END_VAR.
PROGRAM/END_PROGRAM và VAR/END_VAR đều là cấu trúc. Có nghĩa là chúng phân định một khu vực nhất định trong chương trình cho một chức năng hay cái gì đó cụ thể. Cấu trúc PROGRAM/END_PROGRAM là nơi chứa tất cả chương trình PLC và cấu trúc VAR/END_VAR là nơi xác định các biến.
Tất cả bốn từ khóa ( PROGRAM, END_PROGRAM, VAR và END_VAR ) được gọi là từ khóa vì chúng là những từ dành riêng. Bạn không hề sử dụng những từ đó cho bất kể điều gì khác khi bạn đang lập trình trong ST. Tên chương trình của bạn không được là PROGRAM hoặc thậm chí còn là program ( ST / STL không phân biệt chữ hoa chữ thường ), vì từ đó chỉ hoàn toàn có thể được sử dụng để tạo một cấu trúc để phân tách chương trình PLC .
Tùy thuộc vào loại tài liệu bạn muốn tàng trữ, có 1 số ít loại tài liệu có sẵn. Các loại tài liệu khác nhau được gọi là kiểu tài liệu. Ví dụ : nếu bạn có một biến mà bạn muốn tàng trữ TRUE hoặc FALSE, bạn hoàn toàn có thể khai báo nó dưới dạng kiểu BOOL. Kiểu BOOL là kiểu tài liệu boolean có nghĩa là nó hoàn toàn có thể chứa giá trị boolean ( TRUE hoặc FALSE ) .
Một biến thì sẽ có một kiểu tài liệu nhất định và chúng chứa một giá trị của kiểu tài liệu đó. Nhưng có một điều nữa bạn hoàn toàn có thể trấn áp trong những biến của mình, đó là tên của biến .
Để giúp bạn thuận tiện sử dụng những biến trong suốt chương trình PLC của mình, toàn bộ chúng đều được đặt tên. Khi bạn xác lập một biến trong cấu trúc VAR, bạn khởi đầu bằng cách đặt tên cho biến đó :
X: BOOL;
Câu lệnh này sẽ tạo một biến có tên là X, với kiểu tài liệu BOOL .
Lưu ý rằng : khi bạn đang lập trình với một số ít ứng dụng lập trình PLC như của Siemens hay Rockwell, bạn sẽ không sử dụng cấu trúc VAR / END_VAR cho đến khi khai báo những biến. Thay vào đó, những biến thường được gọi là thẻ ( tag ) hoặc ký hiệu và ngay cả khi bạn đang lập trình bằng ST, bạn vẫn hoàn toàn có thể khai báo chúng một cách thuận tiện ( như trong hình bên dưới ) hoặc trong một khối hàm .
Biến (Variable), thẻ (tag) hoặc ký hiệu (Symbol) trong ST
Các biến thường được gọi là thẻ trong lập trình PLC. Trong ứng dụng lập trình PLC Studio 5000 Logix Designer dành cho PLC của Allen Bradley ( Rockwell ), những biến được gọi là thẻ. Nhưng nếu bạn đang lập trình trong những phiên bản cũ hơn của ứng dụng Lập trình SIMATIC STEP 7 cho PLC Siemens, những biến được gọi là ký hiệu. Trong những phiên bản mới hơn của STEP 7 ( từ TIA Portal phiên bản 11 ), những biến được gọi là thẻ .
Không có yếu tố gì với cách gọi những biến, chúng luôn có cùng một tính năng. Và với ứng dụng lập trình IEC 61131 – 3 như STEP 7, Codesys hoặc Studio 5000, những kiểu tài liệu tiêu chuẩn sẽ luôn có sẵn .
Các kiểu dữ liệu trong ST
Tùy thuộc vào tên thương hiệu hãng PLC bạn đang sử dụng, bạn sẽ có 1 số ít kiểu tài liệu khác nhau. Tất cả những kiểu tài liệu tiêu chuẩn được xác lập bởi tổ chức triển khai PLCOpen và chúng là một phần của ngôn ngữ lập trình PLC. Mọi ứng dụng lập trình PLC với tương hỗ ngôn ngữ lập trình ST đều có những kiểu tài liệu này. Trong tiêu chuẩn IEC, những kiểu tài liệu được chia thành hai loại : kiểu tài liệu cơ sở và kiểu tài liệu dẫn xuất .
Các kiểu dữ liệu cơ sở:
- Số nguyên (Integers)
- Dấu chấm động (Floating points)
- Thời gian (Time)
- Chuỗi (Strings)
- Chuỗi bit (Bit strings)
Trong mỗi kiểu tài liệu cơ sở, có sẵn một số ít kiểu tài liệu IEC. Đây là những kiểu tài liệu được định nghĩa trong IEC 61131 – 3 :
- Số nguyên (Integers)
IEC Data Type |
Format | Range |
SINT | Short Integer | -128 … 127 |
INT | Integer | -32768 … 32767 |
DINT | Double Integer | -2^31 … 2^31-1 |
LINT | Long Integer | -2^63 … 2^63-1 |
USINT | Unsigned Short Integer | 0 … 255 |
UINT | Unsigned Integer | 0 … 2^16-1 |
LDINT | Long Double Integer | 0 … 2^32-1 |
ULINT | Unsigned Long Integer | 0 … 2^64-1 |
- Dấu chấm động (Floating points)
IEC Data Type |
Format | Range |
REAL | Real Numbers | ± 10 ^ ± 38 |
LREAL | Long Real Numbers | ±10^±308 |
- Thời gian (Time)
IEC Data Type |
Format | Use |
TIME | Duration of time after an event | T#10d4h38m57s12ms TIME#10d4h38m |
DATE | Calendar date | D#1989-05-22 DATE#1989-05-22 |
TIME_OF_DAY | Time of day | TOD#14:32:07 TIME_OF_DAY#14:32:07.77 |
DATE_AND_TIME | Date and time of day | DT#1989-06-15-13:56:14.77 DATE_AND_TIME#1989-06-15-13:56:14.77 |
- Chuỗi (Strings)
IEC Data Type |
Format | Range |
STRING | Character String | ‘My string’ |
- Chuỗi bit (Bit strings)
IEC Data Type |
Format | Range |
BOOL | Boolean | 1 bit |
BYTE | Byte | 8 bits |
WORD | Word | 16 bits |
DWORD | Double Word | 32 bits |
LWORD | Long Word | 64 bits |
Các kiểu dữ liệu dẫn xuất:
- Kiểu dữ liệu cấu trúc
- Kiểu dữ liệu liệt kê
- Kiểu dữ liệu phạm vi phụ
- Kiểu dữ liệu mảng
Các kiểu tài liệu dẫn xuất là kiểu tài liệu tùy chỉnh của riêng bạn. Tất cả những kiểu tài liệu dẫn xuất được tạo bằng cách sử dụng cấu trúc TYPE và END_TYPE. Ở giữa những cấu trúc là kiểu tài liệu dẫn xuất mà bạn muốn khai báo
Tất cả những kiểu tài liệu này có vẻ như hơi phức tạp vào lúc này. Đặc biệt nếu bạn chưa sử dụng ngôn ngữ lập trình dạng văn bản trước đây. Nhưng không cần phải lo ngại. Hiện tại, bạn chỉ cần nhớ một vài kiểu tài liệu trong số chúng để mở màn lập trình với ST. Khi bạn trở nên tốt hơn và những chương trình của bạn phức tạp hơn, bạn sẽ dần tìm hiểu và khám phá về nhiều kiểu tài liệu hơn khi sử dụng chúng. Điều quan trọng ở đây là bạn không cần phải tiến lên quá nhanh. Bạn muốn hiểu đúng những điều cơ bản nhất ,
Như bạn hoàn toàn có thể thấy, những kiểu tài liệu khác nhau hoàn toàn có thể chứa những định dạng tài liệu khác nhau và do đó có những giá trị khác nhau. Nhưng làm thế nào để bạn đặt những giá trị trong những biến ? Và làm thế nào để bạn sử dụng những biến ? Đó là với những biểu thức và toán tử sẽ giúp bạn triển khai điều này .
Biểu thức và toán tử trong ST
Các toán tử được sử dụng để thao tác dữ liệu và là một phần của hầu hết mọi ngôn ngữ lập trình. Cũng giống như toán tử, biểu thức là một phần quan trọng của ngôn ngữ lập trình .
Một biểu thức là một cấu trúc, khi được sử dụng sẽ mang lại một giá trị. Điều này có nghĩa là khi trình biên dịch biên dịch một biểu thức, nó sẽ tính biểu thức và sửa chữa thay thế câu lệnh bằng tác dụng. Ví dụ với hai biến A và B : A chứa giá trị là 10 và B chứa giá trị là 8. Khi ta sử dụng biểu thức A + B như sau :
A + B
Kết quả của biểu thức này là 18, thế cho nên khi trình biên dịch biên dịch biểu thức A + B sẽ cho ra hiệu quả và đặt giá trị là 18 vào .
Một biểu thức gồm có những toán tử và toán hạng. Vậy toán tử và toán hạng là gì ?
Theo ví dụ biểu thức trên “ A + B ”, ta thấy biểu thức này có hai toán hạng là A và B và một toán tử là “ + ”. Biểu thức này nó đang lấy giá trị của biến A và thêm nó vào giá trị của biến B. Dấu “ + ” còn được gọi là toán tử cộng vì đây là phép toán “ cộng ” .
Các toán tử trong ST
Có một số ít toán tử có sẵn trong ST và IEC 61131 – 3 miêu tả toàn bộ những toán tử tiêu chuẩn trong ngôn ngữ ST :
Toán tử |
Biểu tượng (ký hiệu) | Độ ưu tiên |
Dấu ngoặc đơn | (…) | Cao nhất |
Tìm giá trị lớn nhất | MAX (A,B) | |
Phủ định | – NOT |
|
Lũy thừa | ** | |
Nhân Chia Modulo |
* / MOD |
|
Cộng Trừ |
+ – |
|
So sánh | <, >, <=, >= | |
Bằng Không bằng |
= <> |
|
Boolean AND Boolean AND |
& AND |
|
Boolean Exclusive OR | XOR | |
Boolean OR | OR | Thấp nhất |
Tất cả những toán tử trong bảng trên được sắp xếp theo thứ tự ưu tiên ( từ cao xuống thấp lần lượt từ trên xuống dưới ). Đây còn được gọi là thứ tự của những phép toán, và bạn hoàn toàn có thể biết về nó từ toán học .
Thứ tự của những toán tử là thứ tự mà những hoạt động giải trí được thực thi hoặc giám sát. Chỉ cần nhìn vào biểu thức này :
A + B * MAX (C, D)
Trình biên dịch sẽ tính biểu thức này như thế nào?
Chúng ta thấy trong bảng toán tử, toán tử được ưu tên cao nhất là dấu ngoặc đơn. Có nghĩa là, mọi thứ trong ngoặc đơn sẽ được thống kê giám sát trước ( ở đây là : ( C, D ) ). Tuy nhiên, vì MAX ( C, D ) là một hàm, tất cả chúng ta hoàn toàn có thể xuống thêm một hàng trong bảng ưu tiên để thống kê giám sát hàm .
Vậy trong biểu thức trên, đầu tiên chúng ta cần tính toán là hàm MAX (C,D). Hàm này sẽ trả về kết quả, trong trường hợp này: giá trị nào cao nhất trong hai biến C và D thì sẽ được trả về (C>D thì sẽ trả về kết quả là C, còn C
Ở ví dụ này, tất cả chúng ta tạm coi là C chính là hiệu quả mà biểu thức trả về. Khi đó biểu thức sẽ được tác dụng như sau :
A + B * C
Chúng ta thấy, còn lại hai phép toán là : nhân và cộng ; ta xét bảng toán tử và thấy phép “ nhân ” có mức độ ưu tiên cao hơn, do đó tất cả chúng ta sẽ tính biểu thức B * C trước và sau đó lấy tác dụng nhận được từ biểu thức và liên tục cộng với A .
Mỗi khi giám sát một biệt thức trong ST, trình biên dịch sẽ tuân theo thứ tự ưu tiên như trong bảng trên .
Các toán tử được sử dụng cho những biểu thức trong ST hoàn toàn có thể được chia thành bốn nhóm. Mỗi nhóm toán tử sẽ có một tính năng đơn cử và sẽ mang lại một kiểu tài liệu đơn cử .
- Toán tử số học
- Toán tử quan hệ
- Toán tử logic
- Toán tử Bitwise
Toán tử số học trong ST
Tất cả những toán tử số học thường chỉ được gọi là toán tử toán học vì chúng đại diện thay mặt cho toán học. Kết quả sẽ luôn là tác dụng toán học của biểu thức .
- + (thêm)
- – (trừ / phủ định)
- * (nhân)
- ** (số mũ)
- / (chia)
- MOD (phép chia modulo)
15 MOD 4 // Kết quả: 3
Toán tử quan hệ trong ST
Để so sánh hoặc tìm mối quan hệ giữa hai giá trị, bạn hoàn toàn có thể sử dụng một trong những toán tử quan hệ. Chúng được sử dụng để so sánh và tác dụng sẽ là giá trị boolean ( kiểu BOOL ), TRUE hoặc FALSE ( Đúng hoặc Sai ) .
- = (bằng nhau)
- < (nhỏ hơn)
- <= (nhỏ hơn hoặc bằng)
- > (lớn hơn)
- > = (lớn hơn hoặc bằng)
- <> (không bằng)
NhietDo := 93.9;
NhietDo >= 100.0
// Kết quả: FALSE
Toán tử logic trong ST
Nếu bạn muốn so sánh những giá trị boolean ( BOOL ) và triển khai 1 số ít phép toán logic từ nó, bạn phải sử dụng những toán tử logic. Các toán tử này cũng mang lại giá trị boolean là TRUE hoặc FALSE do hiệu quả của biểu thức .
- & hoặc AND
- OR
- XOR
- NOT
LIMIT_SWITCH1 := TRUE; LIMIT_SWITCH2 := FALSE; LIMIT_SWITCH1 OR LIMIT_SWITCH2 // Kết quả: TRUE
Toán tử Bitwise trong ST
Nhóm toán tử ở đầu cuối được gọi là toán tử Bitwise ( toán tử theo chiều bit ) vì những phép toán được triển khai theo chiều bit. Nó chỉ đơn thuần là một hoạt động giải trí logic được triển khai cho mỗi bit của hai số. Kết quả là 1 số ít mới – tổng kết quả của những phép toán bit .
15 AND 8 // Kết quả: 15
Vì cách tính biểu thức này là theo từng bit nên việc giám sát sẽ theo từng bit. Vì vậy, để hiểu những gì đang xảy ra, bạn phải quy đổi những số thành giá trị nhị phân :
15 = 1111
8 = 1000
Bây giờ mỗi bit trong số 1111 ( 15 ) hoàn toàn có thể được sử dụng trong một phép toán logic với số khác 1000 ( 8 ) :
1111 AND 1000
Số bit | 1111 (15) | 1000 (8) | Kết quả |
0 | 1 | 1 | 1 |
1 | 1 | 0 | 0 |
2 | 1 | 0 | 0 |
3 | 1 | 0 | 0 |
Toán tử và cú pháp (câu lệnh)
Trong phần trước, bạn đã khám phá về biểu thức nhìn nhận. Có nghĩa là toàn bộ những biểu thức sẽ mang lại hiệu quả và trình biên dịch sẽ thay thế sửa chữa biểu thức bằng hiệu quả. Tuy nhiên, nếu bạn muốn PLC ( trình biên dịch ) không nhìn nhận điều gì đó, mà để LÀM điều gì đó ? thì tất cả chúng ta cần sử dụng những cú pháp ( hay câu lệnh, mã lệnh ) .
Có một số ít câu lệnh có sẵn trong ST. Tất cả chúng đại diện thay mặt cho một thuật toán hoặc một điều kiện kèm theo. Bắt đầu với những thuật toán, câu lệnh cơ bản nhất trong ST là câu lệnh gán. Các câu lệnh cũng được miêu tả trong tiêu chuẩn IEC do PLCOpen tăng trưởng và tiêu chuẩn tiên phong mà họ liệt kê là câu lệnh gán .
A := B;
Câu lệnh này này nhu yếu trình biên dịch lấy giá trị của biến B và đặt nó trong biến A .
Gán giá trị cho một biến :
A := 10;
Câu lệnh này sẽ gán một giá trị là 10 vào biến A, hay nói một cách khác A sẽ được gán giá trị là 10 .
Với giá trị A = 10, tất cả chúng ta thực thi thêm một biểu thức khác
B := A + 2;
Khi dòng mã này được biên dịch, biểu thức A + 2 sẽ được trả về giá trị là 12. Trình biên dịch sẽ sửa chữa thay thế biểu thức bằng tác dụng 12. Bây giờ câu lệnh sẽ giống như thế này so với trình biên dịch :
B := 12;
Bây giờ, trình biên dịch sẽ gán giá trị 12 cho biến B .
Chúng ta học được ở đây là ký hiệu “ : = ” được gọi là toán tử gán. Chúng ta rất dễ nhầm lẫn và sử dụng nhầm toán tử gán “ : = ” với toán tử bằng “ = ”. Thoạt nhìn, chúng trông giống nhau, tuy nhiên nó có sự độc lạ rất lớn. Chúng ta cùng xem hai ví dụ sau :
Ví dụ 1: về toán tử bằng “=”
A = B
Ví dụ 2: về toán tử gán “:=”
A := B;
Trong ví dụ 1, đây là một biểu thức, toán tử sẽ được sử dụng để đánh giá. Toán tử bằng đánh giá theo cách sau: nếu bên phải và bên trái bằng nhau, nó sẽ trả về kết quả là TRUE hoặc 1. Nếu không bằng nhau, nó sẽ trả về kết quả là FALSE hoặc 0.
Với một số ít toán tử khác, toán tử bằng là một toán tử quan hệ. Tất cả những toán tử quan hệ sẽ trả về tác dụng là TRUE hoặc FALSE .
Trong ví dụ 2, đây là một câu lệnh. Toán tử sẽ được sử dụng để hành vi ( thực thi mệnh lệnh ) thay vì nhìn nhận. Phép gán là một hành vi, và ở đây giá trị của A sẽ nhận giá trị của B .
Bạn luôn hoàn toàn có thể xác lập hay phân biệt được đâu là một câu lệnh bằng dấu chấm phẩy. Bởi dấu chấm phẩy là cách trình biên dịch biết khi nào kết thúc một câu lệnh .
Bạn hoàn toàn có thể sử dụng tổng thể những loại biểu thức trong câu lệnh gán của mình, từ những giá trị đơn thuần như số đến những biến và hàm. Bởi vì toàn bộ những biểu thức sẽ được nhìn nhận trước và sau đó, tác dụng của nhìn nhận đó sẽ được sử dụng trong câu lệnh gán .
Câu lệnh điều kiện trong ST
Các chương trình PLC sử dụng các thuật toán logic nhằm đưa ra một số quyết định. Đó là lý do, vì sao cần sử dụng PLC hay bộ điều khiển nào đó để đưa ra quyết định và hành động trên trạng thái hiện tại.
Hiểu theo một cách đơn thuần : PLC sẽ xem xét trạng thái của toàn bộ những nguồn vào và sử dụng chương trình PLC để đưa ra những quyết định hành động đầu ra cần được thực thi. Và trong những chương trình PLC, để đưa ra những quyết định hành động, tất cả chúng ta thường sử dụng câu lệnh điều kiện kèm theo. Vậy từ đây ta hoàn toàn có thể rút ra Kết luận rằng : “ câu lệnh điều kiện kèm theo được sử dụng đúng mực là để đưa ra quyết định hành động ” .
Có hai loại câu lệnh điều kiện kèm theo trong ST là : câu lệnh IF và câu lệnh CASE .
Câu lệnh IF trong ST
Câu lệnh IF là câu lệnh đưa ra quyết định hành động khi thỏa mãn nhu cầu điều kiện kèm theo. Mặc dù câu lệnh IF khá đơn thuần để hiểu, tuy nhiên bạn vẫn cần phải biết cách sử dụng những câu lệnh điều kiện kèm theo này trong ST .
Câu lệnh IF trong ST sử dụng cấu trúc theo cách của nó. Điều này có nghĩa là bạn phải viết nó theo một cách nhất định để trình biên dịch hiểu nó. Cũng giống như dấu chấm phẩy được sử dụng để kết thúc câu lệnh, có những từ khóa đặc biệt quan trọng để tạo câu lệnh IF .
IF [boolean expression] THEN
ELSIF [boolean expression] THEN
ELSE
END_IF ;
Cú pháp cho câu lệnh IF trông rất giống với những từ tiếng Anh đơn thuần. Dòng tiên phong chứa hai từ khóa : IF và THEN. Giữa hai từ khóa đó là điều kiện kèm theo, là một biểu thức. Nhưng không phải là bất kể biểu thức nào, nó cần phải là một biểu thức boolean .
Biểu thức Boolean & Numeric
Có thể chia biểu thức thành hai nhóm ( Boolean và Numeric ) theo tính năng của chúng .
Biểu thức Boolean cho giá trị kiểu BOOL, TRUE hoặc FALSE .
Đây là ví dụ về biểu thức boolean :
1 = 1
Biểu thức này sẽ nhìn nhận hoặc mang lại hiệu quả TRUE. Biểu thức boolean cũng hoàn toàn có thể trông giống như sau :
1 > 2
Lần này biểu thức boolean sẽ nhìn nhận là FALSE, vì 1 không lớn hơn 2 .
Biểu thức Numeric là biểu thức nhìn nhận 1 số ít nguyên hoặc một số ít dấu phẩy động .
Một biểu thức Numeric hoàn toàn có thể trông đơn thuần như sau :
13.2 + 19.8
Biểu thức này sẽ trả về giá trị hiệu quả là 33.0 => biểu thức Numeric ( biểu thức số )
Biểu thức boolean được sử dụng trong câu lệnh IF làm điều kiện kèm theo .
IF ( nếu ) biểu thức boolean nhìn nhận là TRUE, THEN ( thì ) những câu lệnh sau sẽ được thực thi .
PLC sẽ chỉ triển khai những câu lệnh sau từ khóa THEN, nếu biểu thức cho hiệu quả là TRUE. Điều này được minh họa bằng những ví dụ sau đây :
A := 0; IF A = 0 THEN B := 0; END_IF ;
Dòng số 3 sẽ chỉ được triển khai nếu A bằng 0. Trong trường hợp này, nó đã gán giá trị A là 0 trong một câu lệnh ngay trước câu lệnh IF .
Trong ví dụ này, một quyết định hành động được thực thi tùy thuộc vào giá trị của một biến. Bây giờ, tất cả chúng ta thử vận dụng ví dụ này trong lập trình PLC .
Giả sử bạn muốn tạo một chương trình đặt đầu ra PLC tùy thuộc vào trạng thái của nguồn vào. Với một câu lệnh IF đơn thuần, bạn hoàn toàn có thể làm điều đó trong ST :
IF INPUT1=TRUE THEN OUTPUT1 := TRUE; END_IF;
Mặc dù ví dụ này chỉ là một phần của chương trình ( biến INPUT1 đại diện thay mặt cho một nguồn vào và OUTPUT1 là một đầu ra ), nó minh họa phương pháp đưa ra quyết định hành động cho đầu ra PLC. Biến OUTPUT1 sẽ chỉ được đặt thành TRUE NẾU biến INPUT1 là TRUE .
Vì cả hai biến INPUT1 và OUTPUT1 đều thuộc loại BOOL, nên dòng tiên phong trong câu lệnh cũng hoàn toàn có thể trông giống như sau :
IF INPUT1 THEN
Chỉ cần viết biểu thức là “ INPUT1 ” sẽ vẫn nhìn nhận là TRUE, khi biến là TRUE .
Câu lệnh ELSE IF trong ST
Bạn đã thấy một câu lệnh IF đơn thuần trong ví dụ trên, trong đó những câu lệnh chỉ được thực thi nếu một biểu thức là TRUE. Nếu biểu thức đó nhìn nhận là FALSE, những câu lệnh sẽ không được thực thi. Nếu chương trình PLC của bạn nhu yếu nhiều điều kiện kèm theo thì sao ?
Tất nhiên, bạn hoàn toàn có thể viết chương trình cho nhu yếu này dưới dạng nhiều câu lệnh IF riêng không liên quan gì đến nhau. Tuy nhiên, ST có nhiều tùy chọn tương thích hơn cho những câu lệnh IF. Cũng giống như hầu hết những ngôn ngữ lập trình khác, bạn hoàn toàn có thể sử dụng những lệnh ELSIF và ELSE cho nhiều điều kiện kèm theo trong cùng một câu lệnh IF .
Cả ELSIF và ELSE đều là những lệnh tùy chọn bổ trợ trong câu lệnh IF, đây là cú pháp của nó :
IF [boolean expression] THEN
ELSIF [boolean expression] THEN
ELSE
END_IF;
Nếu biểu thức boolean trên dòng 1 là FALSE, những câu lệnh bên dưới sẽ không được thực thi. Thay vào đó, trình biên dịch sẽ kiểm tra biểu thức boolean sau từ khóa ELSIF .
ELSIF hoạt động giải trí giống như lệnh IF : nếu biểu thức boolean sau lệnh ELSIF là true, những câu lệnh sau sẽ được thực thi .
Còn lệnh ELSE hoạt động giải trí như một tùy chọn bổ trợ mặc định cho câu lệnh IF. Nếu tổng thể những biểu thức boolean IF và ELSIF được nhìn nhận là FALSE, những câu lệnh sau từ khóa ELSE sẽ được thực thi .
Kết hợp các toán tử cho các điều kiện nâng cao
Bên cạnh việc tạo nhiều điều kiện kèm theo, bạn cũng hoàn toàn có thể lan rộng ra những điều kiện kèm theo của mình gồm có nhiều biến. Bạn hoàn toàn có thể phối hợp nhiều biểu thức, thường được thực thi với một toán tử logic, để có được một biểu thức lớn hơn .
Nếu bạn muốn không chỉ 1 mà 2 nguồn vào là ĐÚNG trước khi đưa ra quyết định hành động cho đầu ra được đặt. Biểu thức sẽ như thế này :
IF (INPUT1) AND (INPUT2) THEN OUTPUT1 := TRUE; END_IF;
Biểu thức sẽ cho giá trị là TRUE, chỉ khi INPUT1 và INPUT2 là TRUE .
Lệnh CASE trong ST
Cách thứ hai để đưa ra quyết định hành động trong ST là sử dụng những câu lệnh CASE. Về cơ bản, câu lệnh CASE và câu lệnh IF giống nhau. Nhưng câu lệnh CASE sử dụng biểu thức số thay vì biểu thức boolean. Các câu lệnh CASE cũng có cú pháp hơi khác, nó tương thích hơn cho những mục tiêu nhất định .
Đây là cách bộc lộ cú pháp cho những câu lệnh CASE trong ST :
CASE [numeric expression] OF
result1:
resultN:
ELSE
END_CASE;
Trong câu lệnh CASE chỉ có 1 biểu thức. Kết quả của biểu thức đó được sử dụng để quyết định hành động câu lệnh nào được thực thi .
Là một tùy chọn mặc định, câu lệnh CASE cũng có từ khóa ELSE. Các câu lệnh sau từ khóa đó chỉ được thực thi nếu không có tác dụng ( hoặc không thuộc điều kiện kèm theo của CASE nào ) khớp với tác dụng của biểu thức số .
Đây là một ví dụ rất đơn thuần :
PROGRAM_STEP := 3; CASE PROGRAM_STEP OF 1: PROGRAM_STEP := PROGRAM_STEP+1; 2: PROGRAM_STEP := PROGRAM_STEP+2; 3: PROGRAM_STEP := PROGRAM_STEP+3; ELSE PROGRAM_STEP := PROGRAM_STEP+10; END_CASE;
Vòng lặp FOR trong ST
Vòng lặp FOR được sử dụng để lặp lại 1 số ít lần đơn cử. Vòng lặp FOR có 1 số ít từ khóa khác. TO, BY, DO và END_FOR .
Đây là cú pháp của vòng lặp FOR trong ST :
FOR count := initial_value TO final_value BY increment DO
END_FOR;
Dòng tiên phong có vẻ như hơi phức tạp, nhưng sẽ đơn thuần hơn nếu bạn chia nó thành nhiều phần :
- FOR – Từ khóa bắt đầu vòng lặp FOR
- count := initial_value – Thao tác gán này là vị trí bạn đặt giá trị ban đầu mà bạn muốn đếm. Số đếm là tên biến và giá trị ban đầu là giá trị bạn muốn bắt đầu đếm.
- TO: Từ khóa trước giá trị cần đếm.
- final_value – Đây là giá trị bạn muốn đếm. Đặt 100 ở đây và vòng lặp của bạn sẽ được lặp đi lặp lại đến 100 lần.
- BY: Từ khóa để sử dụng giá trị tăng tùy chỉnh.
- increment – Giá trị mà bạn muốn tăng số lượng mỗi khi vòng lặp chạy. Nếu bạn đặt số tăng là 10 và số đếm là 100, vòng lặp sẽ chạy 10 lần.
- DO
; END_FOR; – Phần cuối cùng này giữa từ khóa DO và END_FOR là các câu lệnh bạn muốn thực hiện mỗi khi vòng lặp của bạn chạy. Các câu lệnh này sẽ được thực hiện nhiều lần khi các vòng lặp được lặp lại.
Vì vòng lặp FOR chỉ hoàn toàn có thể có một khoảng chừng giá trị đặt trước mà chúng sẽ tái diễn, đó là mục tiêu chúng được sử dụng. Trong lập trình PLC, một ví dụ vận dụng đơn thuần như một đồ vật phải được sấy bốn lần. Vòng lặp FOR sẽ được sử dụng để đếm và lặp lại bốn lần rồi kết thúc .
Cuối cùng, bạn hoàn toàn có thể sử dụng câu lệnh IF với từ khóa EXIT để dừng vòng lặp trước khi đếm. Bạn hoàn toàn có thể thêm điều kiện kèm theo boolean nếu TRUE sẽ dừng vòng lặp .
IF [boolean expression] THEN EXIT; END_IF;
Vòng lặp WHILE trong ST
Vòng lặp while hơi khác so với vòng lặp FOR, vì nó được sử dụng để lặp lại vòng lặp miễn là một số ít điều kiện kèm theo là ĐÚNG. Vòng lặp WHILE sẽ được lặp đi lặp lại miễn là biểu thức boolean nhìn nhận là TRUE .
Đây là cú pháp của vòng lặp WHILE :
WHILE [boolean expression] DO
END_WHILE;
Giữa từ khóa WHILE và DO là biểu thức boolean. Nếu biểu thức boolean đó trả về giá trị là TRUE, tổng thể những câu lệnh cho đến từ khóa END_WHILE sẽ được thực thi .
Khi đạt đến END_WHILE, biểu thức boolean sẽ được nhìn nhận lại. Điều này sẽ lặp đi tái diễn cho đến khi biểu thức không trả về giá trị là TRUE nữa ( tức là trả về giá trị FALSE ). Nhưng để làm cho vòng lặp dừng lại tại một điểm, bạn phải đổi khác một giá trị trong biểu thức boolean. Chỉ bằng cách đó, biểu thức boolean mới hoàn toàn có thể chuyển từ TRUE đến FALSE .
Đây là một ví dụ về vòng lặp WHILE trong ST :
counter := 0;
WHILE counter < 10 DO
counter := counter + 1;
machine_status := counter * 10;
END_WHILE;
Nếu bạn nhìn vào dòng thứ ba, bạn sẽ thấy vòng lặp ở đầu cuối sẽ ngừng tái diễn như thế nào. Biểu thức boolean sử dụng biến bộ đếm và kiểm tra xem giá trị của nó có nhỏ hơn hoặc bằng 10. Nhưng vì giá trị của bộ đếm được đặt thành 0 ngay trước vòng lặp WHILE nên biểu thức boolean sẽ là TRUE trừ khi bộ đếm được biến hóa .
Đó là những gì đang xảy ra ở dòng 3. Đây là câu lệnh tiên phong trong vòng lặp WHILE, và với những câu lệnh khác, được triển khai mỗi khi vòng lặp tái diễn. Ở dòng thứ ba, giá trị của biến bộ đếm được tăng lên 1. Bạn hoàn toàn có thể hiểu rằng giá trị ngày càng tăng là 1 .
Trong ví dụ trên, vòng lặp sẽ lặp lại 10 lần. Khi giá trị của số đếm bằng 10, biểu thức boolean sẽ trả về giá trị là FALSE ( vì 10 không nhỏ hơn 10 ) và vòng lặp sẽ dừng lại .
Bạn cũng hoàn toàn có thể sử dụng từ khóa EXIT trong vòng lặp WHILE để dừng lặp lại vòng lặp trước khi biểu thức boolean là FALSE. Cú pháp là một câu lệnh IF với từ khóa EXIT. Đặt nó ở bất kể đâu giữa từ khóa DO và END_WHILE .
IF [boolean expression] THEN EXIT; END_IF;
Lệnh REPEAT trong ST
Nó hoạt động giải trí theo cách ngược lại của vòng lặp WHILE. Vòng lặp này sẽ ngừng lặp lại khi biểu thức boolean là TRUE .
Trong ST, cú pháp cho những vòng lặp REPEAT trông giống như sau :
REPEAT
UNTIL [boolean expression]
END_REPEAT;
Lưu ý ở đây rằng vì biểu thức boolean trong loại vòng lặp này nằm sau những câu lệnh, những câu lệnh sẽ luôn được thực thi tối thiểu một lần. Điều này rất có ích nếu bạn muốn một hành vi xảy ra một lần và sau đó, với một điều kiện kèm theo, hãy quyết định hành động xem hành vi đó có nên xảy ra nữa hay không .
Cũng giống như với vòng lặp WHILE, bạn phải biến hóa một giá trị trong biểu thức boolean trong quy trình thực thi, để làm cho vòng lặp ngừng lặp lại. Điều này hoàn toàn có thể được triển khai bằng cách tăng giá trị của một biến ( để đếm ) hoặc nó hoàn toàn có thể được thực thi với một câu lệnh điều kiện kèm theo như câu lệnh IF bên trong vòng lặp .
Phần mềm lập trình hỗ trợ ngôn ngữ ST
#1. Beckhoff TwinCat 3
Phần mềm lập trình của Beckhoff trọn vẹn thích hợp với tổng thể những ngôn ngữ lập trình PLC IEC 61131 - 3 gồm có Sơ đồ bậc thang ( LD ) và Văn bản có cấu trúc ( ST ). Đối với người học, lợi thế lớn nhất của TwinCat 3 là nó có một trình mô phỏng đi kèm. Bạn không cần phải mua PLC, bạn chỉ cần sử dụng PLC mềm .
#2. Codesys
Nó là một môi trường tự nhiên ứng dụng mã nguồn mở để lập trình PLC IEC 61131 - 3. Mã nguồn mở tức là nó cho tải xuống không tính tiền, điều này rất tương thích cho những sinh viên .
Một số ví dụ sử dụng ngôn ngữ lập trình ST
#1. Ví dụ 1:
Sử dụng ngôn ngữ lập trình ST tương ứng:
%Q2.3 := %I1.1 OR %M1; %Q2.2 := %M2 OR (NOT %I1.2); %Q2.4 := %I1.3 OR (RE %I1.4); %Q2.5 := %M3 OR (FE %I1.5);
#2. Ví dụ 2:
Sử dụng ngôn ngữ lập trình ST tương ứng:
IF %M0 THEN %MW0 := %MW10 + 100; END_IF; IF %I3.2 THEN %MW0 := SQRT(%MW100); END_IF; IF RE(%I3.3) THEN INC(%MW100); END_IF;
#3. Ví dụ 3:
- Hướng dẫn thiết kế giao diện Web Server cho PLC điều khiển & giám sát máy bơm công nghiệp (Viết chương trình ST cho PLC)
Kết luận khi học ST
Học một ngôn ngữ lập trình mới hoàn toàn có thể là một thử thách khá lớn. Tuy nhiên, so với người mới khởi đầu, có 1 số ít điều rất cơ bản mà bạn nên ghi nhớ :
- Học tập cần có thời gian: bạn mới bắt đầu. Hãy dành cho mình một chút thời gian để học ngôn ngữ (cú pháp, hàm,…)
- Thực hành càng nhiều càng tốt: cố gắng tạo càng nhiều chương trình và giải pháp PLC với ngôn ngữ lập trình ST càng tốt.
- Học hỏi từ những thất bại của bạn: mỗi khi bạn mắc sai lầm, đừng buồn. Học hỏi từ nó và trở thành một lập trình viên giỏi hơn.
- Tiếp tục tìm hiểu, nghiên cứu và học: không ngừng đọc, xem hướng dẫn và các tài liệu học tập khác.
- Nói chuyện với các lập trình viên PLC khác (học thầy không tày học bạn): không kém phần quan trọng là thảo luận trên các diễn đàn và đặt câu hỏi. Tham gia và học hỏi từ các lập trình viên PLC khác.
Chúng tôi cho rằng, phần ở đầu cuối là phần quan trọng nhất. Học hỏi kinh nghiệm tay nghề từ những người khác hoàn toàn có thể là cách hiệu suất cao nhất để học, không riêng gì về ngôn ngữ lập trình mà còn về cách sử dụng nó. Tham gia cuộc bàn luận bên dưới : đặt câu hỏi tiên phong của bạn về ST và liên kết với những lập trình viên PLC khác .
Trên đây, MESIDAS GROUP đã san sẻ cho những bạn những kỹ năng và kiến thức cơ bản nhất về ngôn ngữ lập trình ST ( Structured Text – văn bản có cấu trúc ). Chúng tôi kỳ vọng rằng, với những kiến thức và kỹ năng phía trên sẽ giúp ích cho những bạn trong quy trình khám phá, điều tra và nghiên cứu, học tập và thao tác với ngôn ngữ lập trình ST. Xin cảm ơn !
Nguồn tìm hiểu thêm chính : https://www.plcacademy.com/structured-text-tutorial/
Article Rating
Source: https://vh2.com.vn
Category : Tin Học