Hướng dẫn S7-1200_Bài 8: Tập lệnh lập trình – Tập lệnh mở rộng

 

 

5.2  Tập lệnh mở rộng 

5.2.1    Các thông sổ lỗi thông dụng đổi với tập lệnh mở rộng.

Phần miêu tả lệnh mở rộng diễn tả các lỗi trong thời gian thi hành mà có thể xuất hiện trong mỗi lệnh lập trình. Bổ sung cho các lỗi này, các lỗi phổ biến được liệt kê dưới đây còn có thể xảy ra. Khi một khối mã được thực thi và một trong số các lỗi thông dụng xuất hiện, CPU sẽ chuyển sang chế độ STOP nếu ta không sử dụng các lệnh GetError hoặc GetErrorlD nằm bên trong khối mã đó để tạo ra một phản ứng được lập trình đối với lỗi.

5.2.2   Các lệnh đếm thời gian và lịch.

Các lệnh ngày và giờ

Ta sử dụng các lệnh ngày và giờ để lập trình những tính toán về lịch và thời gian.

•         T CONV chuyển đổi kiểu dữ liệu của một giá trị thòi gian: (Time sang Dlnt) hay (Dlnt sang Time)

•         T_ADD cộng các giá trị Time và DTL: (Time + Time = Time) hay (DTL + DTL = DTL)

•         T_SUB trừ các giá trị Time và DTL: (Time – Time = Time) hay (DTL – Time = DTL)

T_DIFF đưa ra sự khác nhau giữa hai giá trị DTL như một giá trị Time: DTL – DTL = Time

Ta lựa chọn các kiểu dữ liệu IN và OUT từ các danh sách thả xuống có sẵn phía dưới tên lệnh.

Có thể thực hiện hai phép cộng kiểu dữ liệu sau:
T_ADD (Time Add) cộng giá trị ngõ vào INI (kiểu DTL hay Time) với giá trị ngõ vào IN2 kiểu Time. Thông số OUT mang lại kết quả là giá trị DTL hay Time.

  • Time + Time = Time
  • DTL + Time = DTL

Lựa chọn kiểu dữ liệu INI từ danh sách thả xuống có sẵn phía dưới tên lệnh. Việc lựa chọn kiểu dữ liệu INI còn thiết lập kiểu dữ liệu của thông số OUT.

Lệnh T SUB (Time Subtract) trừ một giá trị IN2 kiểu Time từ giá trị INI kiểu DTL hay kiểu Time. Thông số OUT mang lại giá trị hiệu như một kiểu dữ liệu DTL hay Time.

Có thể thực hiện hai phép trừ kiểu dữ liệu sau:

  • Time – Time = Time
  • DTL – Time = DTL

Lựa chọn kiểu dữ liệu INI từ danh sách thả xuống có sẵn phía dưới tên lệnh. Việc lựa chọn kiểu dữ liệu INI còn thiết lập kiểu dữ liệu của thông số OUT.

Các mã điều kiện: ENO = 1 nghĩa là không có lỗi xuất hiện. Các lỗi làm cho ENO = 0 và thông số OUT = 0:

  • Giá trị DTL không hợp lệ
  • Giá trị Time không hợp lệ.

Các lệnh đếm thời gian 

Ta sử dụng các lệnh đếm thời gian để thiết lập và đọc đồng hồ hệ thống của PLC. Kiểu dữ liệu DTL được sử dụng để mang lại các giá trị ngày và giờ.

Thời gian địa phương được tính toán bằng cách sử dụng múi giờ và độ dịch chỉnh thời gian tiết kiệm ánh sáng ngày mà ta thiết lập trong phần cấu hình thiết bị CPU Clock.

  • Việc cấu hình múi giờ là một sự bù đắp đối với thời gian hệ thống UTC {Coordinated Unỉversal Time).
  • Việc cấu hình thời gian tiết kiệm ánh sáng ngày xác định tháng, tuần, ngày và giờ khi thời gian tiết kiệm ánh sáng ngày bắt đầu.
  • Việc cấu hình giờ tiêu chuẩn còn xác định tháng, tuần, ngày và giờ khi giờ tiêu chuẩn bắt đầu.

Độ dịch chỉnh múi giờ luôn luôn được áp dụng đến giá trị thời gian hệ thống. Độ dịch chỉnh thời gian tiết kiệm ánh sáng ngày chỉ được áp dụng khi thòi gian tiết kiệm ánh sáng ngày có hiệu lực.

Các mã điều kiện: ENO = 1 có nghĩa không có lỗi xuất hiện. ENO = 0 nghĩa là một lỗi thực thi đã xuất hiện, và một mã điều kiện được cung cấp tại ngõ ra RET VAL.

5.2.3    Các lệnh chuỗi và kỷ tự.

5.2.3.1    Tổng quan chuỗi dữ liệu.

Kiểu dữ liệu String

Dữ liệu String được lưu trữ như một phần đầu có 2 byte được theo sau bởi tối đa 254 byte ký tự của các mã ký tự ASCII. Một phần đầu String chứa 2 độ dài. Byte đầu tiên là độ dài tối đa được cho trong dấu ngoặc vuông khi khi ta khởi chạy một chuỗi, hay mặc định bằng 254. Byte thứ hai là độ dài hiện tại tức là số lượng của các ký tự hợp lệ trong chuỗi. Độ dài hiện tại phải nhỏ hon hoặc bằng độ dài tói đa. số lượng các byte được lưu trữ được lấp đầy bởi định dạng String là lớn hơn 2 byte so với độ dài tối đa.

Khởi chạy dữ liệu string

Dữ liệu ngõ vào và ngõ ra String phải được khỏi chạy như các chuỗi họp lệ trong bộ nhớ, trước thực thi của bất kỳ các lệnh chuỗi nào.

Dữ liệu string hợp lệ

Chuỗi họp lệ có một độ dài tối đa phải lớn hơn 0 nhưng nhỏ hơn 255. Độ dài hiện tại phải nhỏ hơn hay bằng độ dài tối đa.

Các chuỗi không thể được gán giá trị đến các vùng nhớ I hay Q.

5.2.3.2    Các lệnh chuyển đổi chuỗi.

Các chuyển đổi thành giá trị và giá trị thành chuỗi 

Ta có thể chuyển đổi chuỗi ký tự số thành các giá trị số hay chuyển đổi các giá trị số thành chuỗi ký tự số bằng những lệnh sau:

  • S CONV chuyển đổi (chuỗi số sang một giá trị số) hay (giá trị số sang một chuỗi số).
  • STRG_VAL chuyển đổi một chuỗi số sang một giá trị số với các tùy chọn định dạng.
  • VALSTRG chuyển đổi một giá trị số sang một chuỗi số với các tùy chọn định dạng.

Lệnh S CONV (Strỉng Convert) chuyển đổi một chuỗi ký tự thành giá trị tương ứng, hay một giá trị thành một chuỗi ký tự tương ứng. S CONV không có các tùy chọn định dạng ngõ ra. Điều này làm cho lệnh S CONV đơn giản hơn, nhưng kém linh hoạt hơn so với các lệnh STRGVAL và VALSTRG.

Lựa chọn các kiểu dữ liệu thông số từ các danh sách thả xuống. S CONV (chuyển đổi chuỗi thành giá trị)

Việc chuyển đổi của thông số chuỗi IN bắt đầu tại ký tự đầu tiên và tiếp tục cho đến vị trí cuối cùng của chuỗi, hay đến ký tự đầu tiên được bắt gặp mà không phải là từ “0” đến “9”, “+”, “ – ” hay Giá trị kết quả được cung cấp tại vị trí được xác định trong thông số OUT. Nếu giá ừị số ngõ ra không nằm vừa trong phạm vi của kiểu dữ liệu OUT, thông số OUT sau đó được đặt về 0 và ENO được đặt là FALSE. Nếu không, thông số OUT sẽ chứa một kết quả họp lệ và ENO được đặt là TRUE.

Các quy tắc định dạng chuỗi ngõ vào:

  • Nếu một dấu chấm thập phân được sử dụng trong chuỗi IN, ta phải dùng ký tựu 9?
  • Các ký tự dấu phẩy được sử dụng như một phân cách hàng ngàn về bên trái của dấu chấm thập phân thi được cho phép và được bỏ qua.
  • Các khoảng trống cách quãng được bỏ qua.

Chỉ có sự biểu thị dấu chấm cố định là được hỗ trợ. Các ký tự “e” và “E” không được nhận ra là ký hiệu lũy thừa.

S CONV (chuyển đổi giá trị thành chuỗi)

Một giá trị số nguyên, giá trị số nguyên không dấu hay giá trị dấu chấm động của IN được chuyển đổi sang chuỗi ký tự tương ứng tại OUT. Thông số OUT phải tham chiếu một chuỗi họp lệ trước khi sự chuyển đổi được thực thi. Một chuỗi hợp lệ gồm có một độ dài chuỗi cực đại ừong byte đầu tiên, độ dài chuỗi hiện thòi trong byte thứ hai và các ký tự chuỗi hiện thời trong các byte kế tiếp. Chuỗi được chuyển đổi sẽ thay thế các ký tự trong chuỗi OUT bắt đầu tại ký tự đầu tiên và điều chỉnh byte độ dài hiện thời của chuỗi OUT. Byte độ dài tối đa của chuỗi OUT thì không bị thay đổi.

Có bao nhiêu các ký tự được thay thế là phụ thuộc vào kiểu dữ liệu thông số IN và giá trị số. Số lượng của các ký tự được thay thế phải nằm vừa trong độ dài chuỗi tại thông số OUT. Độ dài chuỗi tối đa (byte đầu tiên) của chuỗi OUT nên lớn hơn hay bằng số lượng được mong đợi tối đa của các ký tự được chuyển đổi.

Bảng sau đây thể hiện độ dài chuỗi có thể có tối đa được yêu cầu đối với mỗi kiểu dữ liệu được hỗ trợ.

Các quy tắc định dạng chuỗi ngõ ra:

  • Các giá trị được ghi đến thông số OUT không sử dụng một dấu “+” cách quãng.
  • Sự biểu thị dấu chấm cố định được sử dụng (không có ký hiệu lũy thừa).

Ký tự dấu chấm được sử dụng để biểu thị dấu chấm thập phân khi thông số IN là

Lệnh STRG VAL

Lệnh STRG VAL (Strỉng to Value) chuyển đổi một chuỗi ký tự số thành một số nguyên tương ứng hay một biểu thị dấu chấm động.

Việc chuyển đổi bắt đầu ừong chuỗi IN tại ký tự dịch chỉnh p và tiếp tục cho đến vị trí cuối của chuỗi, hay đến ký tự đầu tiên được bắt gặp mà không phải là ”, “e”, “E” hay từ “0” đến “9”. Kết quả được đặt tại vị trí được xác định bởi thông số OUT.

Thông số p còn được trả về như một giá trị đếm dịch chỉnh trong chuỗi ban đầu tại vị trí mà sự chuyển đổi được chấm dứt. Dữ liệu chuỗi phải được khởi chạy trước sự thực thi như một chuỗi họp lệ trong bộ nhớ.

Thông số FORMAT của STRG VAL

Thông số FORMAT đối với lệnh STRGVAL được xác định dưới đây. Các vị trí bit không được sử dụng phải được đặt về 0.

f = định dạng ký hiệu: 1 = ký hiệu lũy thừa

0 = ký hiệu dấu chấm cố định

r = định dạng chấm thập phân: 1 = “,”(ký tự dấu phẩy)

0 = “.”(ký tự dấu chấm)
Các quy tắc đối với chuyển đổi STRG VAL:
• Nếu ký tự dấu chấm được sử dụng cho dấu chấm thập phân, khi đó các dấu phẩy ‘V’ về bên trái của chấm thập phân được diễn dịch như là các ký tự phân cách phần ngàn. Các ký tự dấu phẩy được cho phép và được bỏ qua.
Nếu ký tự dấu phẩy ‘V’ được sử dụng cho dấu chấm thập phân, khi đó các dấu chấm về bên trái của chấm thập phân được diễn dịch như là các ký tự phân cách

Lệnh VALSTRG

Lệnh VAL_ STRG (Value to String) chuyển đổi một số nguyên, một số nguyên không dấu, hay một giá trị dấu chấm động thảnh một biểu diễn chuỗi ký tự tương ứng. Giá trị được biểu diễn bởi thông số IN được chuyển đổi thành một chuỗi được tham chiếu bởi thông số OUT.Thông số OUT phải là một chuỗi họp lệ trước khi sự chuyển đổi được thực thi. Chuỗi được chuyển đổi sẽ thay thế các ký tự trong chuỗi OUT bắt đầu tại giá trị đếm độ dịch chỉnh ký tự p đến số lượng các ký tự được xác định bởi thông số SIZE. số lượng các ký tự trong SIZE phải nằm vừa trong độ dài chuỗi OUT, tính từ vị trí ký tự p. Lệnh này hữu dụng cho việc nhúng vào các ký tự số vào trong một chuỗi văn bản. Ví dụ, ta có thể đặt số “120” vào trong chuỗi “Pump pressure =120 psi”.

Thông số PREC xác định độ chính xác hay số lượng các con số cho phần phân số của chuỗi. Nếu giá ừị thông số IN là một số nguyên, PREC xác định vị trí của dấu chấm thập phân. Ví dụ, nếu giá trị dữ liệu là 123 và PREC = 1 thì kết quả là “12.3”. Độ chính xác được hỗ trợ tối đa đối với kiểu dữ liệu Real là 7 con số.

Nếu thông số p lớn hơn kích thước hiện thời của chuỗi OUT, khi đó các khoảng trắng sẽ được thêm vào, cho đến vị trí p, và kết quả được nối thêm vào đến vị trí cuối của chuỗi. Việc chuyển đổi kết thúc nếu chiều dài chuỗi OUT tối đa được đạt đến.

Thông số FORMAT của lệnh VAL STRG

Thông số FORMAT đối với lệnh VAL_ STRG được xác định dưới đây. Các vị trí bit không được sử dụng phải được đặt về 0.

f = định dạng ký hiệu:

r = định dạng chấm thập phân:

s = ký tự dấu của số:

1 = sử dụng ký tự dấu “+” và “ – ” 0 = chỉ sử dụng ký tự dấu “ – ”

1 = ký hiệu lũy thừa 0 = ký hiệu dấu chấm cố định

1 = (ký tự dấu phẩy) 0 = (ký tự dấu chấm)

Các quy tắc định dạng chuỗi thông số OUT:

  • Các ký tự khoảng trắng cách quãng được cộng vào phần ngoài cùng bên trái của chuỗi khi chuỗi được chuyển đổi nhỏ hơn kích thước được xác định.
  • Khi bit dấu của thông số FORMAT là FALSE, các giá trị kiểu dữ liệu số nguyên không dấu và có dấu được ghi đến bộ đệm ngõ ra mà không có dấu “+” cách quãng. Dấu “ – ” được sử dụng nếu cần.

<Các khoảng trống cách quãng> <các con số không có số 0 cách quãng> <Các con số PREC>

  • Khi bit dấu là TRUE, các giá trị kiểu dữ liệu số nguyên không dấu và có dấu được ghi đến bộ đệm ngõ ra luôn luôn có một ký tự dấu cách quãng.

<Các khoảng ừống cách quãng> <dấu> <các con số không có số 0 cách quãng> <Các con số PREO

  • Khi FORMAT được thiết lập để biểu thị lũy thừa, các giá trị kiểu dữ liệu Real được ghi đến bộ đệm ngõ ra như sau:

<Các khoảng ừống cách quãng> <dấu> < con số> <Các con số PREC> ‘E’ <dấu> <các con số không có số 0 cách quãng>

Khi FORMAT được thiết lập để biểu thị dấu chấm cố định, các giá trị kiểu dữ liệu

  • Các số 0 cách quãng nằm bên trái của chấm thập phân (ngoại trừ con số kế cận với chấm thập phân) bị xóa bỏ.
  • Các giá trị nằm bên phải của chấm thập phân được làm tròn để nằm vừa trong số lượng các con số bên phải chấm thập phân được xác định bởi thông số PREC.
  • Kích thước của chuỗi ngõ ra phải ít nhất lớn hơn 3 byte so với số lượng các con số nằm bên phải của chấm thập phân.
  • Các giá trị được căn chỉnh bên phải trong chuỗi ngõ ra.

Các điều kiện được thuật lại bỏi ENO

Khi một lỗi bị bắt gặp trong suốt hoạt động chuyển đổi, các kết quả sau đây sẽ được trả về:

  • ENO được đặt về 0.
  • OUT được đặt về 0, hay như được thể hiện trong các ví dụ về việc chuyển đổi chuỗi sang giá trị.
  • OUT không bị thay đổi, hay như được thể hiện trong các ví dụ khi OUT là một chuỗi.

Các ví dụ về chuyển đổi chuỗi thành giá trị S CONV

Các ví dụ về chuyển đổi giá trị thành số S CONV

Các ví dụ về chuyển đổi STRG VAL

Các ví dụ về chuyển đổi VAL STRG

Các ví dụ dựa trên một chuỗi OUT được khởi chạy như sau:

“Current Temp = xxxxxxxxxx C”

Ký tự “x” biểu thị các ký tự khoảng cách được phân bổ cho giá trị được chuyển đổi.

5.2.3.3    Các lệnh vận hành chuỗi.

Chương trình điều khiển có thể sử dụng các lệnh chuỗi và ký tự sau đây để tạo ra các thông điệp cho bộ phận điều hành hiển thị và xử lý các biểu đồ.

Các lỗi thông dụng đối với tất cả các lệnh chuỗi

Các lệnh vận hành chuỗi mà được thực thi với các điều kiện chuỗi không họp lệ hay không đúng quy tắc được thể hiện dưới đây sẽ cho kết quả một giá trị ENO = 0 và một ngõ ra một chuỗi rỗng. Các điều kiện lỗi mà xuất hiện trong một lệnh xác định thì được liệt kê phía dưới phần miêu tả sự thực thi lệnh.

Lệnh LEN

Lệnh CONCAT (Concatenate strings) nối các thông số chuỗi INI và IN2 để hình thành nên một chuỗi được đưa ra tại OUT. Sau sự ghép nối này chuỗi INI là phần bên trái và chuỗi IN2 là phần bên phải của chuỗi được kết họp. Bảng sau đây thể hiện các mã điều kiện của lệnh.

Lệnh LEFT

Lệnh LEFT (Left substrỉng) mang lại một chuỗi con được tạo từ L các ký tự đầu tiên của thông số chuỗi IN.

  • Nếu L lớn hơn độ dài hiện thời của chuỗi IN, toàn bộ chuỗi IN sau đó được trả về trong OUT.
  • Nếu một chuỗi rỗng là ngõ vào, một chuỗi rỗng sau đó được trả về trong OUT. Bảng sau đây thể hiện các mã điều kiện của lệnh.

Lệnh RIGHT

Lệnh RIGHT (Right substring) mang lại L các ký tự cuối của chuỗi.

  • Nếu L lớn hơn độ dài hiện thời của chuỗi IN, toàn bộ chuỗi IN sau đó được trả về trong OUT.
  • Nếu một chuỗi rỗng là ngõ vào, một chuỗi rỗng sau đó được trả về trong OUT.
Bảng sau đây thể hiện các mã điều kiện của lệnh.

Lệnh MID

Lệnh MID (Middle substring) mang lại phần nằm giữa của một chuỗi. Chuỗi con ở giữa dài L ký tự và bắt đầu tại vị trí ký tự là p (bao gồm luôn ký tự này).

Nếu tổng của L và p vượt quá độ dài hiện thời của thông số chuỗi IN, một chuỗi con bắt đầu tại vị trí ký tự là p và tiếp tục đến cuối chuỗi IN sẽ được trả về. Bảng sau đây thể hiện các mã điều kiện của lệnh.

Lệnh DELETE

Lệnh DELETE (Delete substring) xóa L ký tự trong chuỗi IN. Việc xóa đi ký tự bắt đầu tại vị trí ký tự là p (bao gồm cả ký tự này), và chuỗi con còn lại được mang lại tại thông số OUT.

  • Nếu L = 0, chuỗi ngõ vào được trả về trong OUT.
  • Nếu tổng của L và p lớn hơn độ dài của chuỗi ngõ vào, chuỗi sẽ được xóa đến hết.

Bảng sau đây thể hiện các mã điều kiện của lệnh.

Lệnh INSERT

Lệnh INSERT (1nsert substring) chèn chuỗi IN2 vào chuỗi INI. Việc chèn bắt đầu sau ký tự tại vị trí p. Bảng sau đây thể hiện các mã điều kiện của lệnh.

Lệnh REPLACE

Lệnh REPLACE (Repỉace substring) thay thế L ký tự trong thông số chuỗi IN. Sự thay thế bắt đầu tại ký tự vị trí p (bao gồm cả ký tự này) của chuỗi INI, với các ký tự thay thế đến từ thông số chuỗi IN2.

•         Nếu thông số L = 0, chuỗi IN2 được chèn vào tại vị trí p của chuỗi INI mà không xóa đi bất kỳ ký tự nào trong chuỗi IN 1.

•         Nếu p = 1, L các ký tự đầu tiên trong INI được thay thế với các ký tự chuỗi IN2.

Bảng sau đây thể hiện các mã điều kiện của lệnh.
Lệnh FIND
Lệnh FIND (Find subsừ-ing) mang lại vị trí ký tự của chuỗi con hay ký tự được xác định bởi IN2 nằm trong chuỗi INI. Việc tìm kiếm bắt đầu ở bên trái. Vị trí ký tự của lần xuất hiện đầu tiên của chuỗi IN2 thì được trả về tại OUT. Nếu chuỗi IN2 không được tìm thấy trong chuỗi INI thi kết quả 0 được trả về. Bảng sau đây thể hiện các mã điều kiện của lệnh.

5.2.4     Các lệnh điều khiển chương trình.

5.2.4.1. Lệnh cảnh giới đặt lại chu kỳ quét.

Lệnh RE TRIGR (Re — trigger scan time watchdog) được sử dụng đê mở rộng thời gian tối đa được cho phép trước khi bộ định thì cảnh giới chu kỳ quét sinh ra một lỗi.

Sử dụng lệnh RETRIGR để khởi động lại bộ định thì chu kỳ quét trong suốt một chu kỳ quét đorn. Điều này có sự ảnh hưởng của việc mở rộng thời gian chu kỳ quét tối đa được cho phép bằng một giai đoạn thời gian chu kỳ cực đại, từ sự thực thi cuối cùng của hàm RE TRIGR.

CPU giới hạn việc sử dụng của lệnh RE TRIGR đối với chu kỳ chương trình, ví dụ OB1 và các hàm mà được gọi từ chu kỳ chương trinh. Điều này có nghĩa là bộ định thì cảnh giới được đặt lại, và ENO = EN nếu RE TRIGR được gọi từ bất kỳ một OB nào trong danh sách OB chu kỳ chương trình.

ENO = FALSE và bộ định thi cảnh giới không được đặt lại nếu như RE TRIGR được thực thi từ một OB khởi động, một OB ngắt hay một OB lỗi.

Thiết lập thời gian chu kỳ tối đa của PLC

Ta có thể thiết lập giá trị cho thời gian chu kỳ quét tối đa trong phần cấu hình thiết bị PLC cho “Cycle time”

Hết thời gian chờ cảnh giới

Nếu bộ định thì chu kỳ quét tối đa hết hiệu lực trước khi chu kỳ quét được hoàn thành, một lỗi sẽ được sinh ra. Nếu khối mã xử lý lỗi OB80 được bao gồm trong chương trình người dùng, PLC sẽ thực thi OB80 tại nơi mà ta có thể thêm vào chương

trình logic để tạo ra một phản ứng đặc biệt. Nếu OB80 không được bao gồm, điều kiện thời gian tạm ngừng đầu tiên sẽ được bỏ qua.

Nếu hết thời gian chờ cho thời gian quét tối đa lần thứ hai xuất hiện trong lần quét cùng một chưorng trình (giá trị thời gian chu kỳ tối đa là 2 lần), thì một lỗi sẽ được khởi sự mà có thể làm cho PLC chuyển về chế độ STOP.

Trong chế độ STOP, sự thực thi chương trình của ta dừng lại trong khi các giao tiếp hệ thống và các chẩn đoán hệ thống PLC vẫn tiếp tục.

5.2.4.2     Lệnh dừng chu kỳ quét.

Lệnh STP (Stop PLC scan cycỉe) đặt PLC về chế độ STOP. Khi PLC ở chế độ STOP, sự thực thi của chương trình và các cập nhật vật lý từ ảnh tiến trình sẽ được dừng lại.

Nếu EN = TRUE, PLC sẽ đi vào chế độ STOP, sự thực thi chương trình dừng lại, và trạng thái ENO là vô nghĩa. Nếu không, EN = ENO = 0.

5.2.4.3   Lệnh nhận lỗi.

Các lệnh nhận lỗi cung cấp thông tin về các lỗi thực thi khối chương trình. Nếu ta thêm một lệnh GETERROR hay GETERRORID vào khối mã, ta có thể xử lý các lỗi chương trình trong khối chương trình của ta.

Lệnh GET_ERROR

Lệnh GET_ERR_ID

Hoạt động

Theo mặc định, CPU phản hồi đến một lỗi thực thi khối bằng cách ghi chép một lỗi trong bộ đệm chẩn đoán (Diagnostỉcs) và chuyển về chế độ STOP. Tuy nhiên, nếu ta đặt một hay nhiều lệnh GETERROR hay GET ERR ID bên trong một khối mã, khối này bây giờ được thiết lập để giải quyết các lỗi bên trong khối. Trong trường hợp này, CPU không chuyển về chế độ STOP và không ghi chép một lỗi trong bộ đệm chẩn đoán. Thay vào đó, thông tin về lỗi được thuật lại trong ngõ ra của lệnh GETERROR hay GET ERR ID. Ta có thể đọc thông tin lỗi chi tiết với lệnh GET ERROR, hay chỉ đọc định danh lỗi với lệnh GET ERR ID. Thông thường thì lỗi đầu tiên là rất quan trọng, với các lỗi theo sau chỉ là hệ quả của lỗi đầu tiên.

Sự thực thi đầu tiên của một lệnh GET ERROR hay GET ERR ID bên trong một khối sẽ trả về một lỗi đầu tiên được phát hiện trong suốt việc thực thi khối. Lỗi này có thể đã xuất hiện ở bất kỳ nơi nào giữa sự bắt đầu của khối và sự thực thi của cả GET ERROR hay GET ERR ID. Những thực thi phân dãy của cả GET ERROR hay GET ERR ID đều trả về lỗi đầu tiên từ sự thực thi kề trước của GET ERROR hay GET ERR ID. Lược sử của những lỗi đầu tiên thì không được lưu lại, và sự thực thi của cả hai lệnh sẽ trang bị lại hệ thống PLC để bắt lỗi tiếp theo.

Kiểu dữ liệu ErrorStruct được sử dụng bởi lệnh GET ERROR có thể được thêm vào trong trình soạn thảo Data block và các trình soạn thảo giao diện khối, vì vậy chương trình ỉogic có thể truy xuất những giá trị này. Lựa chọn ErrorStruct từ danh sách thả xuống kiểu dữ liệu để thêm vào cấu trúc này. Ta có thể tạo ra nhiều ErrorStruct bằng cách sử dụng các tên đơn nhất. Các thành phần của một ErrorStruct thì không thể được đặt lại tên.

Điều kiện lỗi được chỉ ra bởi ENO

Nếu EN = TRUE và GET ERROR hay GET ERR ID thực thi, thì:

  • ENO = TRUE cho biết một lỗi thực thi khối mã đã xuất hiện và dữ liệu lỗi được đưa ra.
  • ENO = FALSE cho biết không có lỗi thực thi khối mã nào đã xuất hiện.

Ta có thể kết nối ỉogic chương trình phản ứng lỗi đến ENO mà kích hoạt sau những sự xuất hiện lỗi. Nếu một lỗi tồn tại thì thông số ngõ ra lưu trữ dữ liệu lỗi ở nơi mà chương trình của ta truy xuất vào nó.

GETERROR và GETERRID có thể được sử dụng để gửi thông tin lỗi từ khối đang thực thi hiện thời (khối được gọi) đến một khối đang gọi. Ta định vị lệnh trong mạch cuối cùng của chương trình khối được gọi để báo cáo trạng thái thực thi cuối cùng của khối được gọi.

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Giỏ Hàng Item Removed. Undo
  • No products in the cart.