5. Tập lệnh cơ bản
5.1. Tập lệnh cơ bản
5.1.1 Bit logic.
Các tiếp điểm ladder (LAD)
Ta có thể kết nối các tiếp điểm với nhau và tạo ra mạch logic kết nối. Nếu bỉt ngõ vào mà ta chỉ rõ sử dụng bộ định danh I (ngõ vào) hay Q (ngõ ra), giá trị bỉt sẽ được đọc từ một thanh ghi ảnh tiến trình. Các tín hiệu tiếp điểm vật lý trong tiến trình điều khiển được nối đến các đầu cực I trên PLC. CPU quét các tín hiệu ngõ vào được nối và cập nhật liên tục các giá trị tương ứng trong thanh ghi ngõ vào ảnh tiến trình.
Ta có thể ghi rõ một kết quả tức thời của một ngõ vào vật lý bằng cách sử dụng “:P” theo sau sự dịch chỉnh I (ví dụ: “%I3.4:P”). Đối vói một kết quả tức thời, các giá trị dữ liệu bit được đọc một cách trực tiếp từ ngõ vào vật lý thay vì từ ảnh tiến trình. Một kết quả tức thời thì không cập nhật ảnh tiến trình.
- Tiếp điểm thường hở NO (Normally Open) được đóng lại (ON) khi giá trị bít được gán bằng 1.
- Tiếp điểm thường đóng NC (Normaỉỉy Closed) được đóng lại (ON) khi giá trị bỉt được gán bằng 0.
- Các tiếp điểm được nối nối tiếp sẽ tạo ra mạch logic AND.
- Các tiếp điểm được nối song song sẽ tạo ra mạch logỉc OR.
Các hộp FBD: AND, OR và XOR
Trong lập trình FBD, các mạng tiếp điểm LAD được chuyển đổi thành các mạng dùng các khối logic AND (&), OR (> = 1) và OR loại trừ (XOR) mà ta có thể chỉ rõ các giá trị bit cho các ngõ vào và ngõ ra của hộp. Ta còn có thể kết nối đến các hộp logic khác và tạo ra một tổ họp liên hợp logic riêng. Sau khi hộp được đặt trong mạng, ta có thể kéo công cụ “Insert binary input” từ thanh công cụ “Favorites” hay từ cây lệnh và sau đó thả nó lên trên phía đầu vào của hộp để thêm nhiều ngõ vào. Ta còn có thể nhấp chuột phải lên bộ kết nối ngõ vào của hộp và chọn “Insert input”.
Các ngõ vào và ngõ ra của hộp có thể được kết nối đến một hộp logic khác, hay ta có thể nhập vào một địa chỉ bit hay tên ký hiệu bit đối với một ngõ vào chưa được kết nối. Khi lệnh trong hộp được thực thi, trạng thái ngõ vào hiện tại được áp dụng cho mạch logic hộp nhị phân và nếu đúng thì ngõ ra của hộp sẽ là đúng.
- Tất cả các ngõ vào của hộp AND phải là “TRUE” để ngõ ra là “TRUE”.
- Bất kỳ ngõ vào nào của hộp OR phải là “TRUE” để ngõ ra là “TRUE”.
- Một số lẻ các ngõ vào của hộp XOR phải là “TRUE” để ngõ ra là “TRUE”.
Bộ đảo logic NOT
Đối với lập tình FBD, ta có thể kéo công cụ “Negate binary input” từ thanh công cụ “Favorites” hay từ cây lệnh và sau đó thả nó lên một ngõ vào hay ngõ ra để tạo ra một bộ đảo logic trên bộ kết nối của hộp đó.
Tiếp điểm NOT (LAD) chuyển đổi trạng thái ỉogic của đầu vào dòng tín hiệu.
- Nếu không có dòng tín hiệu vào trong tiếp điểm NOT, sẽ có dòng tín hiệu đi ra.
- Nếu có dòng tín hiệu vào trong tiếp điểm NOT, sẽ không có dòng tín hiệu đi ra.
Cuộn dây ngõ ra (LAD)
Lệnh xuất cuộn dây sẽ ghi một giá trị cho một bit ngõ ra. Nếu bit ngõ ra ta chỉ ra sử dụng định danh bộ nhớ Q, thì sau đó CPU sẽ chuyển bỉt ngõ ra trong thanh ghi ảnh tiến trình về on hoặc ofj,\ thiết lập giá trị bit được gán bằng với trạng thái luồng tín hiệu. Các tín hiệu ngõ ra cho cơ cấu điều khiển được nối đến các đầu cực Q của S7 – 1200. Trong chế độ RUN, hệ thống CPU quét một cách liên tục các tín hiệu ngõ vào, xử lý các trạng thái ngõ vào theo chương trình logic, và sau đó tác động trở lại bằng cách thiết lập các giá trị trạng thái ngõ ra mới trong thanh ghi ngõ ra ảnh tiến trình. Sau mỗi chu trình thực thi chương trình, hệ thống CPU chuyển phản ứng trạng thái ngõ ra mới được lưu trữ trong thanh ghi ảnh tiến trình đến các đầu cực nối dây ngõ ra.
Ta có thể xác định một kết quả ghi tức thời của một ngõ ra vật lý bằng cách sử dụng “:P” theo sau độ dịch chuyển Q (ví dụ “%Q3.4:P”). Đối với một kết quả ghi tức thòi, các giá trị dữ liệu bit được ghi đến ngõ ra ảnh tiến trình và trực tiếp đến ngõ ra vật lý.
- Nếu có luồng tín hiệu chạy qua một cuộn dây ngõ ra, bỉt ngõ ra được đặt lên 1.
- Nếu không có luồng tín hiệu chạy qua một cuộn dây ngõ ra, bít ngõ ra được đặt về 0.
- Nếu có luồng tín hiệu chạy qua một cuộn dây ngõ ra đảo, bit ngõ ra được đặt về 0
- Nếu không có luồng tín hiệu chạy qua một cuộn dây ngõ ra đảo, bit ngõ ra được đặt lên 1.
Hộp gán ngõ ra (FBD)
Trong lập trình FBD, các cuộn dây LAD được chuyển đổi thành các hộp gán (= và /=) mà ta có thể định rõ một địa chỉ bit cho hộp ngõ ra. Các ngõ vào và ngõ ra của hộp có thể được kết nối với khối logic khác hay ta có thể nhập vào một địa chỉ bỉt.
- Nếu tín hiệu vào của hộp ngõ ra là 1, bỉt OUT được đặt lên 1.
- Nếu tín hiệu vào của hộp ngõ ra là 0, bit OUT được đặt về 0.
- Nếu tín hiệu vào của hộp ngõ ra đảo là 1, bit OUT được đặt về 0.
- Nếu tín hiệu vào của hộp ngõ ra đảo là 0, bit OUT được đặt lên 1.
5.1.1.1. Các lệnh Set (đặt) và Reset (đặt lại), s và R: Set và Reset 1 bit
- Khi lệnh s (Set) được kích hoạt, giá trị dữ liệu ở địa chỉ OUT được đặt lên 1. Khi lệnh s không được kích hoạt, ngõ ra OUT không bị thay đổi.
- Khi lệnh R (Reset) được kích hoạt, giá trị dữ liệu ở địa chỉ OUT được đặt về 0. Khi lệnh R không được kích hoạt, ngõ ra OUT không bị thay đổi.
- Những lệnh này có thể được đặt tại bất cứ vị trí nào trong mạch.
- Khi SET_BF được kích hoạt, một giá ữị dữ liệu bằng 1 được gán cho “n” bit bắt đầu tại địa chỉ OUT. Khi SET_BF không được kích hoạt, địa chỉ OUT không bị thay đổi.
- RESET_BF ghi một giá trị dữ liệu bằng 0 đến “n” bit bắt đầu tại địa chỉ OUT. Khi RESET_BF không được kích hoạt, địa chỉ OUT không bị thay đổi.
- Những lệnh này phải là lệnh nằm về bên phải trong một nhánh.
RS và SR: các mạch chốt của bit set trội và reset trội
RS là một mạch chốt set trội mà set chiếm ưu thế. Nếu tín hiệu set (Sl) và reset (R) đều là đúng, địa chỉ ngõ ra OUT sẽ bằng 1.
SR là một mạch chốt reset ữội mà reset chiếm ưu thế. Nếu tín hiệu set (S) và reset (Rl) đều là đúng thì địa chỉ ngõ ra OUT sẽ là 0.
Thông số OUT định rõ địa chỉ bỉt được set hay reset. Ngõ ra OUT tùy chọn (Q ) phản ánh trạng thái tín hiệu của địa chỉ OUT.
5.1.1.2 Các lệnh ngưỡng dương và âm.
Các bộ dò quá độ dương và âm
Tiếp điểm p (LAD): trạng thái của tiếp điểm này là “TRUE” khi một sự quá độ dương (từ OFF sang ON) được phát hiện trên bỉt “IN” được gán. Trạng thái logic của tiếp điểm sau đó được kết họp với dòng tín hiệu trong mạch để thiết lập hạng thái ngõ ra của dòng tín hiệu. Tiếp điểm p có thể được định vị tại bất kỳ vị trí nào trong mạch, ngoại trừ vị trí kết thúc của một nhánh.
Tiếp điểm N (LAD): hạng thái của tiếp điểm này là “TRUE” khi một sự quá độ âm (từ ON sang OFF) được phát hiện trên bỉt được gán. Trạng thái logic của tiếp điểm sau đó được kết họp với dòng tín hiệu ừong mạch để thiết lập trạng thái ngõ ra của dòng tín hiệu. Tiếp điểm N có thể được định vị tại bất kỳ vị trí nào trong mạch, ngoại trừ vị trí kết thúc của một nhánh.
Hộp p (FBD): trạng thái logic ngõ ra là “TRUE” khi một sự quá độ dương (từ OFF sang ON) được phát hiện trên bit ngõ vào được gán. Hộp p chỉ có thể được định vị tại vị trí bắt đầu của một nhánh.
Hộp N (FBD): trạng thái logic ngõ ra là “TRUE” một sự quá độ âm (từ ON sang OFF) được phát hiện trên bit ngõ vào được gán. Hộp N chỉ có thể được định vị tại vị trí bắt đầu của một nhánh.
Cuộn dây p (LAD): bit được gán “OUT” là “TRUE” khi một sự quá độ dương (từ OFF sang ON) được phát hiện trên dòng tín hiệu đi vào cuộn dây. Dòng tín hiệu trong mạch luôn chạy xuyên qua cuộn dây, đóng vai trò như trạng thái ngõ ra dòng tín hiệu. Cuộn dây p có thể được định vị tại bât kỳ vị trí nào trong mạch.
Cuộn dây N (LAD): bỉt được gán “OUT” là “TRUE” khi một sự quá độ âm (từ ON sang OFF) được phát hiện trên dòng tín hiệu đi vào cuộn dây. Dòng tín hiệu trong mạch luôn chạy xuyên qua cuộn dây, đóng vai trò như trạng thái ngõ ra dòng tín hiệu. Cuộn dây N có thể được định vị tại bât kỳ vị trí nào trong mạch.
Hộp p= (FBD): bit được gán “OUT” là “TRUE” khi một sự quá độ dương (từ OFF sang ON) được phát hiện trên trạng thái logic tại kết nối ngõ vào của hộp hoặc trên sự gán bỉt ngõ vào, nếu hộp này được định vị tại điểm khởi đầu của một nhánh. Trạng thái logic ngõ vào luôn chạy xuyên qua hộp giống như trạng thái logic ngõ ra. Hộp p= có thể được định vị tại bất kỳ vị trí nào trong nhánh.
Hộp N= (FBD): bỉt được gán “OUT” là “TRUE” khi một sự quá độ âm (từ ON sang OFF) được phát hiện trên trạng thái logic tại kết nối ngõ vào của hộp hoặc trên sự gán bỉt ngõ vào, nếu hộp này được định vị tại điểm khởi đầu của một nhánh. Trạng thái logic ngõ vào luôn chạy xuyên qua hộp giống như trạng thái logic ngõ ra. Hộp N= có thể được định vị tại bất kỳ vị trí nào trong nhánh.
P TRIG (LAD/FBD): dòng tín hiệu ngõ ra Q hoặc trạng thái logic là “TRUE” khi một sự quá độ dương (từ OFF sang ON) được phát hiện trên trạng thái ngõ vào CLK (FBD) hay trên dòng tín hiệu CLK (LAD). Trong ngôn ngữ LAD, lệnh P TRIG không thể được định vị tại vị trí khởi đầu hay kết thúc của một mạch. Trong ngôn ngữ FBD, lệnh P TRIG có thể được định vị tại bất kỳ vị trí nào, ngoại trừ vị ừí cuối của một nhánh.
N TRIG (LAD/FBD): dòng tín hiệu ngõ ra Q hoặc trạng thái logic là “TRUE” khi một sự quá độ âm (từ ON sang OFF) được phát hiện trên trạng thái ngõ vào CLK (FBD) hay trên dòng tín hiệu CLK (LAD). Trong ngôn ngữ LAD, lệnh N_TRIG không thể được định vị tại vị trí khởi đầu hay kết thúc của một mạch. Trong ngôn ngữ FBD, lệnh N_TRIG có thể được định vị tại bất kỳ vị trí nào, ngoại trừ vị trí cuối của một nhánh.
Tất cả các lệnh ngưỡng sử dụng một bit nhớ (M BIT) để lưu trữ trạng thái kề trước của tín hiệu ngõ vào đang được giám sát. Một ngưỡng được phát hiện bằng cách so sánh trạng thái của tín hiệu ngõ vào với trạng thái của bit nhớ. Neu các trạng thái cho biết rằng một sự thay đổi của tín hiệu theo hướng cần quan tâm thì sau đó một ngưỡng được thuật lại bằng việc ghi giá trị ngõ ra “TRUE”. Neu không, ngõ ra được ghi là “FALSE”.
Lưu ý:
Các lệnh ngưỡng sẽ đánh giá các giá trị của ngõ vào và bỉt nhớ trong mỗi lần chúng được thực thi, kể cả lần thực thi đầu tiên. Ta phải tính đến các trạng thái ban đầu của ngõ vào và bit nhó trong thiết kế chương trình để cho phép hay để tránh sự phát hiện ngưỡng trên lần quét đầu tiên.
Do bỉt nhớ phải được duy trì từ một lần thực thi đến lần thực thi tiếp theo, ta nên dùng một bit đorn nhất cho mỗi lệnh ngưỡng, và không nên dùng bit này tại bất kỳ vị trí nào khác trong chương trình. Ngoài ra ta còn nên tránh bộ nhớ tạm thời và bộ nhớ mà có thể bị tác động đến bởi những hàm hệ thống khác, ví dụ như một cập nhật I/O. Chỉ sử dụng bộ nhớ M, bộ nhớ DB tổng thể hay bộ nhớ Static (trong DB mẫu) cho việc gán vùng nhớ M BIT.
5.1.2 Các bộ định thì (Timer).
Ta sử dụng các lệnh định thì để tạo ra các trì hoãn thời gian được lập trình.
- TP : bộ định thì xung phát ra một xung với bề rộng xung được đặt trước.
- TON : ngõ ra của bộ định thi ON – delay Q được đặt lên ON sau một sự trì hoãn thời gian đặt trước.
- TOF : ngõ ra Q của bộ định thì OFF – delay được đặt lại về OFF sau một sự trì hoãn thời gian đặt trước.
- TONR: ngõ ra bộ định thì có khả năng nhớ ON – delay được đặt lên ON sau một trì hoãn thời gian đặt trước. Thời gian trôi qua được tích lũy qua nhiều giai đoạn định thì cho đến khi ngõ vào R được sử dụng để đặt lại thời gian hôi qua.
- RT : đặt lại một bộ định thì bằng cách xóa dữ liệu thời gian được lưu trữ trong khối dữ liệu tức thời của bộ định thì xác định.
Mỗi bộ định thì sử dụng một cấu trúc được lưu trữ trong một khối dữ liệu nhằm duy trì dữ liệu định thì. Ta gán giá trị khối dữ liệu khi lệnh định thì được đặt trong trình soạn thảo.
Khi ta đặt các lệnh định thì trong một khối hàm, ta có thể lựa chọn tùy chọn khối dữ liệu Multi – ỉnstance, các tên cấu trúc định thì có thể khác nhau với những cấu trúc dữ liệu riêng biệt, nhưng dữ liệu định thì được chứa trong một khối dữ liệu đơn và không cần một khối dữ liệu riêng biệt cho mỗi bộ định thì. Điều này làm giảm thời gian xử lý và nơi lưu trữ cần thiết cho việc xử lý các bộ định thì. Không có mối tương tác giữa những cấu trúc dữ liệu định thì trong khối dữ liệu Multi – lnstance được chia sẻ.
Các bộ định thì TP, TON và TOF có các thông số ngõ vào và ngõ ra giống nhau.
Bộ định thì TONR có thông số ngõ vào đặt lại được thêm vào R. Ta tạo ra một “Timer name” riêng chỉ định Data Block định thì và miêu tả mục đích của bộ định thì này trong chu trình.
Lệnh RT đặt lại dữ liệu định thì cho bộ định thì được chi định.
Thông số IN khởi động và dừng các bộ định thì:
- Sự quá độ từ 0 lên 1 của thông số IN làm khởi động các bộ định thì TP, TON và TONR.
- Sự quá độ từ 1 về 0 của thông số IN làm khởi động bộ định thì TOF.
Bảng dưới đây thể hiện tác động của những sự thay đổi giá trị trong các thông số PT và IN.
Các giá trị TIME.
Các giá trị PT (preset time – thời gian đặt trước) và ET (elapsed time – thời gian đã ừôi qua) được lưu trữ trong bộ nhớ như các số nguyên double có dấu, tượng trưng cho những mili giây thời gian. Dữ liệu TIME sử dụng bộ định danh T# và có thể được nhập vào như một đorn vị thời gian thuần túy “T#200ms” hay như các đorn vị thời gian phức hợp “T#2s_200ms”.
5.1.3 Các bộ đếm (Counter).
5.1.3.1 Các bộ đếm.
Ta sử dụng các lệnh bộ đếm để đếm các sự kiện chương trình bên trong và các sự kiện xử lý bên ngoài:
- CTU: bộ đếm đếm lên.
- CTD: bộ đếm đếm xuống.
- CTUD: bộ đếm đếm lên và xuống.
Mỗi bộ đếm sử dụng một cấu trúc được lưu trữ trong một khối dữ liệu nhằm duy trì dữ liệu đếm. Ta gán giá trị khối dữ liệu khi lệnh đếm được đặt trong trình soạn thảo. Các lệnh này sử dụng các bộ đếm phần mềm với tốc độ đếm cực đại bị giới hạn bởi tốc độ sự thực thi của OB mà nó được chứa trong đó. OB mà các lệnh được đặt trong nó phải được thực thi thường xuyên đủ để phát hiện tất cả các chuyển đổi của các ngõ vào cu hay CD.
Khi đặt các lệnh bộ đếm vào trong một khối hàm, ta có thể lựa chọn tùy chọn khối dữ liệu Multi – ỉnstance, các tên gọi cấu trúc bộ đếm có thể khác với các cấu trúc dữ liệu riêng biệt, nhưng dữ liệu bộ đếm thì được chứa trong một khối dữ liệu đơn và không cần một khối dữ liệu riêng biệt cho mỗi bộ đếm. Điều này làm giảm thời gian xử lý và giảm nơi lưu trữ dữ liệu cần cho các bộ đếm. Không có mối tương tác nào giữa những cấu trúc dữ liệu bộ đếm trong khối dữ liệu Muiti – Instance được chia sẻ.
Lựa chọn kiểu dữ liệu giá trị đếm từ danh sách thả xuống dưới tên hộp.
Ta tạo ra một “Counter name” riêng chỉ định Data Block bộ đếm và miêu tả mục đích của bộ đếm này trong chu trình.
Phạm vi số của các giá trị đếm bằng số phụ thuộc vào kiểu dữ liệu mà ta lựa chọn. Nếu giá trị đếm là một kiểu số nguyên không dấu, ta có thể đếm xuống về 0 hoặc đếm lên đến giới hạn của phạm vi. Nếu giá ữị đếm là một số nguyên có dấu, ta có thể đếm xuống đến giới hạn số nguyên âm và đếm lên đến giới hạn số nguyên duomg.
CTU: CTƯ đếm lên 1 đơn vị khi giá trị của thông số cu thay đổi từ 0 lên 1. Nếu giá trị của thông số cv (Current count value – giá trị đếm hiện thời) lớn hơn hoặc bằng giá trị thông số PV {Preset count value – giá trị đếm đặt trước) thì thông số ngõ ra của bộ đếm Q = 1. Nếu giá trị của thông số đặt lại R thay đổi từ 0 lên 1, giá trị đếm hiện thời được xóa về 0. Hình dưới đây thể hiện một giản đồ định thì CTU với một giá trị đếm là số nguyên không dấu (với PV = 3).
CTD: CTD đếm xuống 1 đơn vị khi giá trị của thông số CD thay đổi từ 0 lên 1. Nếu giá trị của thông số cv (Current count value – giá trị đếm hiện thòi) nhỏ hơn hoặc bằng 0 thì thông số ngõ ra của bộ đếm Q = 1. Nếu giá trị của thông số LOAD thay đổi từ 0 lên 1, giá trị tại thông số PV (.Preset count value – giá trị đặt trước) được nạp đến bộ đếm như một giá ừị cv mới. Hình dưới đây thể hiện một giản đồ định thì CTD với một giá trị đếm là số nguyên không dấu (với PV = 3).
CTUD: CTUD đếm lên hay xuống 1 đơn vị theo sự quá độ từ 0 lên 1 của ngõ vào đếm lên (Count up – CU) hay đếm xuống (Count down – CD). Nếu giá trị của thông số cv (giá trị đếm hiện thời) lớn hơn hoặc bằng giá trị thông số PV (giá trị đếm đặt trước) thì thông số ngõ ra của bộ đếm QU = 1. Nếu giá trị của thông số cv nhỏ hơn hay bằng 0, thông số ngõ ra của bộ đếm QD = 1. Nếu giá ừị của thông số LOAD thay đổi từ 0 lên 1, giá trị tại thông số PV được nạp đến bộ đếm như một giá trị cv mới. Nếu giá trị của thông số đặt lại R thay đổi từ 0 lên 1, giá trị đếm hiện thời sẽ được xóa về 0. Hình dưới đây cho thấy một biểu đồ đếm thời gian CTUD với một giá trị đém số nguyên không dấu (với PV = 4).
5.1.3.2 Lệnh CTRL_HSC.
Lệnh CTRL_HSC điều khiển các bộ đếm tốc độ cao được sử dụng để đếm các sự kiện xuất hiện nhanh hom tốc độ thực thi OB. Tốc độ đếm của các lệnh bộ đếm CTU, CTD và CTUD bị giới hạn bởi tốc độ thực thi của OB mà chúng được chứa trong đó.
Một ứng dụng thông dụng của các bộ đếm tốc độ cao là đếm các xung được sinh ra bởi một máy phát xung có trục điều khiển chuyển động.
Mỗi lệnh CTRL HSC sử dụng một cấu trúc đsược lưu trữ trong một khối dữ liệu để duy trì dữ liệu. Ta gán giá trị khối dữ liệu khi lệnh CTRL HSC được đặt trong trình soạn thảo
Ta phải cấu hình các bộ đếm tốc độ cao trong thiết lập sự cấu hình thiết bị PLC cho đề án trước khi có thể sử dụng các bộ đếm tốc độ cao trong chương trình. Việc thiết lập cấu hình thiết bị HSC lựa chọn các chế độ đếm, các kết nối I/O, phân vùng ngắt, và sự vận hành như một bộ đếm tốc độ cao hoặc như một thiết bị dừng đo tần số xung. Ta có thể vận hành bộ đếm tốc độ cao với có hay không có điều khiển chương trình.
Nhiều thông số cấu hình bộ đếm tốc độ cao chỉ được thiết lập trong cấu hình thiết bị cho đề án. Một vài thông số bộ đếm tốc độ cao được khởi chạy trong cấu hình thiết bị đề án, nhưng không thể được chinh sửa về sau dưới sự điều khiển chương trình.
Các thông số của lệnh CTRL HSC cung cấp sự điều khiển chương trình của tiến trình đếm:
- Thiết lập hướng đếm đến một giá trị NEW_DIR.
- Thiết lập giá trị đếm hiện thời đến một giá trị NEW_CV.
- Thiết lập giá trị tham chiếu đến một giá trị NEW_RV.
- Thiết lập giá trị chu kỳ (cho chế độ đo tần số) đến một giá trị NEW_PERIOD.
Nếu các giá trị cờ boolean sau đây được đặt lên 1 khi lệnh CTRL_HSC được thực thi, giá trị NEW_xxx tương ứng được nạp đến bộ đếm. Nhiều yêu cầu (tức là có nhiều hơn một cờ được đặt tại cùng một thời điểm) được xử lý trong một sự thực thi đơn thuần của lệnh CTRL HSC.
- DIR = 1: yêu cầu nạp một giá trị NEW_DIR; DIR = 0: không thay đổi.
- cv = 1: yêu cầu nạp một giá trị NEW_CV; cv = 0: không thay đổi.
- RV = 1: yêu cầu nạp một giá trị NEW_RV; RV = 0: không thay đổi.
- PERIOD = 1: yêu cầu nạp một giá ừị NEW_PERIOD; PERIOD = 0: không thay đổi.
Lệnh CTRL HSC thường được đặt trong một OB ngắt phần cứng, OB này được thực hiện khi sự kiện ngắt phần cứng bộ đếm được kích hoạt. Lấy ví dụ, nếu một sự kiện cv = RV kích hoạt việc ngắt bộ đếm, một khối mã OB ngắt phần cứng sau đó sẽ thực thi lệnh CTRL HSC và có thể thay đổi giá trị tham chiếu bằng cách nạp một giá trị NEW_RV.
Giá trị đếm hiện thời thì không có sẵn trong các thông số của CTRL HSC. Địa chỉ ảnh tiến trình lưu trữ giá trị đếm hiện thời được gán giá trị trong suốt sự cấu hình phần cứng bộ đếm tốc độ cao. Ta có thể sử dụng chương trình logic để đọc trực tiếp giá trị đếm và giá trị được trả lại chương trình sẽ là một số đếm đúng trong lúcmà bộ đếm đã được đọc. Bộ đếm sẽ tiếp tục đếm các sự kiện tốc độ cao. Vì vậy, giá trị đếm thực tế có thể thay đổi trước khi chương trình hoàn thành một chu trình sử dụng một giá trị đếm cũ.
Các chi tiết thông số CTRL HSC
- Nếu một cập nhật của một giá trị thông số không được yêu cầu, các giá trị ngõ vào tương ứng sẽ bị bỏ qua.
- Thông số DIR chỉ có hợp lệ nếu mệnh lệnh đếm đã cấu hình được đặt về “User program (intemal direction control)”. Ta xác định sử dụng thông số này trên cấu hình thiết bị HSC như thế nào.
- Đối với một HSC S7 – 1200 trên CPU hay trên Signal Board, thông số BUSY luôn luôn mang giá trị là 0.
Các mã điều kiện: trong trường hợp có lỗi, ENO được đặt về 0 và ngõ ra STATUS chứa một mã điều kiện.
5.1.3.3 Hoạt động của bộ đếm tốc độ cao.
Một bộ đếm tốc độ cao (HSC) có thể được sử dụng như một ngõ vào cho một bộ mã hóa trục tăng. Bộ mã hóa trục cung cấp một số lượng xác định sự đếm trên mỗi vòng quay và một xung đặt lại xuất hiện chỉ một lần cho mỗi vòng. Xung đồng hồ và xung đặt lại từ bộ mã hóa trục cung cấp các ngõ vào đến HSC.
Một HSC được nạp với thiết lập trước đầu tiên trong số các thiết lập trước (preset), và các ngõ ra được kích hoạt cho chu trình thời gian mà ở đó giá trị đếm hiện thời nhỏ hơn thiết lập trước hiện thời. HSC mang lại một sự ngắt khi giá trị đếm hiện thời bằng với giá trị thiết lập trước, khi sự đặt lại xuất hiện, và còn khi có một thay đổi định hướng.
Vì mỗi sự kiện ngắt với giá trị đếm hiện thời bằng với giá trị đặt trước xuất hiện, một sự đặt lại mới được nạp và trạng thái kế tiếp của các ngõ ra được thiết lập. Khi sự kiện ngắt đặt lại xuất hiện, sự đặt lại đầu tiên và các trạng thái ngõ ra đầu tiên được thiết lập, và chu trình được lặp lại.
Do các ngắt xuất hiện với một tốc độ thấp hơn nhiều so với tốc độ đếm của HSC, việc điều khiển chính xác của các vận hành với tốc độ cao có thể được thực thi với ảnh hưởng nhỏ một cách tương đối đến chu trình quét của CPU. Phương pháp với phần ngắt kèm theo cho phép mỗi lần nạp một thiết lập trước được thực hiện trong một đoạn chương trình ngắt riêng để điều khiển trạng thái dễ dàng. (Như một sự lựa chọn, tất cả các sự kiện ngắt có thể được thực thi trong một đoạn chương trình ngắt đơn thuần.)
Lựa chọn chức năng cho bộ đếm tốc độ cao HSC
Tất cả các HSC hoạt động theo cách thức giống nhau đối với một chế độ bộ đếm tương ứng trong vận hành. Có 4 kiểu cơ bản của HSC:
- Bộ đếm một pha với điều khiển định hướng bên trong
- Bộ đếm một pha với điều khiển định hướng bên ngoài
- Bộ đếm hai pha với 2 ngõ vào đồng hồ đếm (clock)
- Bộ đếm trạng thái vuông pha A/B
Ta có thể sử dụng mỗi kiểu HSC với có/không có ngõ vào đặt lại. Khi ta kích hoạt ngõ vào đặt lại (với một vài hạn chế, xem ở bảng dưới đây), giá trị hiện thời được xóa và được giữ trống cho đến khi ta giải hoạt ngõ vào đặt lại.
- Chức năng tần số: một chế độ HSC cho phép HSC được cấu hình (kiểu đếm) để báo cáo lại tần số thay vì giá trị đếm hiện tại các xung. Có sẵn 3 thời kỳ đo tần số khác nhau: 0,01, 0,1 và 1,0 giây.
Thời kỳ đo tần số xác định mức độ HSC thường xuyên tính toán và báo cáo một giá trị tần số mới. Tần số được báo cáo là một giá trị trung bình được xác định bởi tổng số lượng sự đếm trong thời kỳ đo cuối cùng. Nếu tần số thay đổi một cách nhanh chóng, giá trị được báo cáo sẽ là một trung gian giữa tần số cao nhất và thấp nhất xuất hiện trong suốt thời kỳ đo. Tần số luôn được xác định theo Hertz (số lượng xung trong mỗi giây) bất chấp sự thiết lập thời kỳ đo tần số.
- Các chế độ và các ngõ vào của bộ đếm: bảng dưới đây thể hiện các ngõ vào được sử dụng cho đồng hồ, điều khiển định hướng và các chức năng đặt lại liên quan đến HSC.
Một ngõ vào giống nhau không thể được sử dụng cho hai chức năng khác nhau, nhưng bất kỳ ngõ vào nào mà đang không được sử dụng bởi chế độ hiện thòi HSC của nó thì có thể được sử dụng cho một mục đích khác. Ví dụ, nếu HSC1 ở trong chế độ sử dụng các ngõ vào gắn liền nhưng không sử dụng đặt lại bên ngoài (10.3) thì 10.3 có thể được sử dụng cho các ngắt ở ngưỡng hoặc cho HSC2.
Việc giám sát các ngõ ra chuỗi xung luôn luôn sử dụng đồng hồ đếm và mệnh lệnh.
Nếu ngõ ra PTO tương ứng chi được cấu hình cho xung, ngõ ra của lệnh thông thường được thiết lập cho việc đếm giá trị dương.
- HSC3 với một ngõ vào đặt lại thì không dùng được cho CPU 1211C vốn chỉ hỗ trợ 6 ngõ vào tích hợp.
- HSC4 không dùng được cho CPU 1211C vốn chỉ hỗ trợ 6 ngõ vào tích hợp.
- HSC5 và HSC6 chỉ được hỗ trợ bởi CPU 1211C và CPU 1212C khi một bảng mạch tín hiệu được lắp đặt.
Truy xuất giá trị hiện thời cho HSC
CPU lưu trữ giá trị hiện thời của mỗi HSC trong một địa chỉ ngõ vào (I). Bảng dưới đây thể hiện các địa chỉ mặc định được gán cho giá trị hiện hành của mỗi HSC. Ta có thể thay đổi địa chỉ I của giá trị hiện thời bằng cách chỉnh sửa các thuộc tính của CPU trong mục Device Conllguration.
Các điểm I/O số đươc gán đến các thiết bi HSC không thể bi tác đông.
Các điểm 1/0 số được sử dụng bởi các thiết bị đếm tốc độ cao được gán giá trị trong suốt sự cấu hình thiết bị. Khi các địa chỉ điểm 1/0 được gán đến những thiết bị này, giá trị của các địa chỉ điểm 1/0 đó không thể được chỉnh sửa bởi hàm tác động bảng Watch.
5.1.3.4 Cấu hình cho HSC.
CPU cho phép ta cấu hình đến 6 bộ đếm tốc độ cao. Đổ cấu hình các thông số cho mỗi HSC riêng biệt, ta chỉnh sửa phần “Properties” của CPU.
5.1.4 So sánh.
Ta sử dụng các lệnh so sánh để so sánh hai giá trị của cùng một kiểu dữ liệu. Khi việc so sánh tiếp điểm LAD là “TRUE”, tiếp điểm này được kích hoạt. Khi việc so sánh hộp FBD là “TRUE”, ngõ ra của hộp sẽ là “TRUE”.
Sau khi nhấp chuột lên lệnh trong trình soạn thảo chương trình, ta có thể lựa chọn kiểu so sánh và kiểu dữ liệu từ các hình đơn thả xuống.
Các lệnh “IN_RANGE” và “OUT_RANGE”
Ta sử dụng các lệnh INRANGE và OUT_RANGE để kiểm tra trong trường hợp một giá trị ngõ vào nằm trong hay nằm ngoài mức giá trị được định sẵn. Nếu sự so sánh là “TRUE” thì ngõ ra của hộp.
Các thông sô ngõ vào MIN, VAL và MAX phải có cùng kiêu dữ liệu.
Sau khi nhấp chuột lên lệnh trong trình soạn thảo chưomg trình, ta có thể lựa chọn kiểu dữ liệu từ các trình đom thả xuống.
Các lệnh “OK” và “NOT_OK”
Ta sử dụng các lệnh OK và NOT OK để kiểm tra xem một sự tham chiếu dữ liệu ngõ vào có phải là một số thực họp lệ hay không theo tiêu chuẩn IEE 754. Khi tiếp điểm LAD là “TRUE”, tiếp điểm được kích hoạt và cho dòng tín hiệu đi qua. Khi hộp FBD là “TRUE”, ngõ ra của hộp nhận giá trị “TRUE”.
Một giá trị Real hay LReal là không họp lệ nếu nó là +/- INF (inỷìnity: vô cùng), NaN (not a number: không phải một số), hay nếu nó là một giá trị không được chuẩn hóa. Giá trị không được chuẩn hóa ở đây là một con số rất gần với 0. CPU thay thế bằng số 0 đối với một con số không được chuẩn hóa trong tính toán.