Chơng 5 Lập trình bằng ngôn ngữ tiêu chuẩn
Giới thiệu
Theo tiêu chuẩn quốc tế, ngôn ngữ lập trình của PLC có năm ngôn ngữ đó là sơ đồ thang
LAD, sơ đồ hàm lô gíc FBD, Sơ đồ hàm nhiệm vụ gián đoạn Grafcet, bảng lệnh STL
và ngôn ngữ lập trình bậc cao: soạn thảo cấu trúc ST (Structured Text). Bốn ngôn ngữ cơ
bản ta đã giới thiệu ở phần đầu.
Tiêu chuẩn quốc tế cho các ngôn ngữ PLC
Có rất nhiều tiêu chuẩn lập trình cho PLC đợc đa ra bởi các Uỷ ban quốc gia và quốc tế
để phát triển giao diện chung cho thiết bị điều khiển khả lập trình. Từ 1979 một nhóm các
chuyên gia lập trình quốc tế dợc tập hợp từ một số các Uỷ ban quốc gia để soạn thảo
những sơ hoạ đầu tiên về tiêu chuẩn dễ hiểu của PLC. Uỷ ban phác hoạ tiêu chuẩn này ra
đời năm 1982. Sau khi Uỷ ban này đệ trình tài liệu phác thảo đầu tiên và hiệu chỉnh ban
đầu, họ cho rằng tiêu chuẩn này khá phức tạp để có thể xử lý nh một tài liệu đơn giản.
Kết quả, nhóm làm việc phải tách ra làm năm nhóm với nhiệm vụ khác nhau tơng ứng
với mỗi phần của tiêu chuẩn. Phần 1 thực hiện về các thông tin chung, phần hai về thiết bị
và thử nghiệm, phần ba về các ngôn ngữ lập trình, phần bốn là hớng dẫn sử dụng và phần
năm là truyền thông.
Mỗi nhóm có vài chuyên gia quôc tế có sự trợ giúp của các nhóm chuyên gia quốc gia.
Tiêu chuẩn IEC 61131-3 về các ngôn ngữ lập trình cho PLC đợc ra đời năm 1993 bởi Uỷ
ban kỹ thuật điện quốc tế (International Electrotechnical Commision). Theo tiêu chuẩn
này có ba ngôn ngữ lập trình đồ hoạ cho PLC là sơ đồ thang LAD, Sơ đồ hàm lô gíc FBD
và GRAFCET và hai ngôn ngữ trên cơ sở bảng lệnh STL và cấu trúc soạn thảo ST. Tiêu
chuẩn các ngôn ngữ lập trình của PLC cho phép lập trình các phần khác nhau của ứng
dụng bằng một ngôn ngữ khác nhau và ttổ hợp lại thành một chơng trình thực hiện đơn
giản.
Ngôn ngữ LAD là ngôn ngữ sử dụng rộng rãi nhất của các PLC. Ngôn ngữ này bao gồm
một tập hợp các lệnh để thực hiện phần lớn các chức năng điều khiển cơ bản nh: lô gíc
dạng rơ le, lệnh đếm thời gian và đếm, và các phép toán cơ bản. Mặc dù vậy, tuỳ thuộc
vào mô đen của PLC, ngời lập trình có thể mở rộng hay nâng cao các tập hợp lệnh để
và kết thúc của mỗi bớc. Các điều kiện này chính là các trạng thái chuyển tiếp của giữa
các bớc. Chơng trình bắt đầu bao giỡ cũng bằng bớc khởi động, là nơi mà PLC bắt đầu
thực hiện các chức năng điều khiển của mình và cũng đồng thời là nơi quay trở về của
chơng trình sau khi thực hiện đến lệnh cuối cùng hay sau khi thực hiện một lệnh điều
kiện nào đó buộc hệ thống phải hoạt động lại từ đầu. Mỗi sơ đồ khối của mỗi bớc hoạt
động là một đơn vị cơ bản của ngôn ngữ GRAFCET, chứa đựng bên trong nó lô gíc hoạt
động cho mỗi bớc độc lập của quá trình công nghệ hay của máy và thiết bị. Trong mỗi
khối có thể đợc đánh số qui ớc thứ tự thực hiện trong chơng trình và có thể đợc ghi
chú sang bên phải của mỗi khối. Các điều kiện chuyển tiếp của các trạng thái quá độ giữa
các bớc cũng đợc ghi chú sang bên phải để tiện theo dõi hoạt động của chơng trình.
Điều kiện chuyển tiếp có giá trị lô gíc là 1 hay TRUE, của bớc hay các bớc hoạt động
trớc bớc này đã kết thúc, và đây là điều kiện để bắt đầu của hoạt động kề sau. Kết thúc
của lệnh cuối cùng hay của lệnh điều kiện nào đó thờng là điều kiện để bắt đầu lại bớc
đầu tiên của chơng trình.
Trên hình 4 là ví dụ chơng trình điều khiển động cơ với nhiều trạng thái chuyển tiếp. Hình Chơng trình Grafcet của ví dụ .. 96
Trong Grafcet có các điều kiện chuyển tiếp đơn và các điều kiện chuyển tiếp kép để diễn
tả trờng hợp một trong các hoạt động có thể diễn ra hay trờng hợp tất cả các hoạt động
diễn ra đồng thời (song song). Điều kiện chuyển tiếp đơn có thể là điều kiện phân nhánh
của các hoạt động, tơng ứng với điều kiện lô gíc OR, hay là điều kiện hội tụ đơn, là bớc
hoạt động kế tiếp sẽ diễn ra khi một trong các nhánh đã kết thúc các hoạt động bên trong
nó.
Để diễn tả điều kiện bắt đầu hay kết thúc của các hoạt động diễn ra đồng thời trên các
nhánh song song, ngời ta sử dụng ký hiệu chuyển tiếp kép, tơng ứng với lô gíc AND.
Điều kiện chuyển tiếp kép là điều kiện bắt đầu là điều kiện để nhiều hoạt động đồng thời
trình, nên rất dễ sử dụng. Ví dụ ta có một máy dập bán tự động điều khiển quá trình dập
các sản phẩm cơ khí. Khi ngời thao tác ấn nút điều khiển, máy đi từ vị trí bắt đầu (vị trí
cao) đi xuống dập vào tấm tôn. Khi đầu dập đạt đến vị trí thấp nhất tức là chi tiết đã dập
xong, đầu dập chuyển động ngợc lai. Các hành trình lên xuống đợc giới hạn bởi các
công tắc hành trình. Trong hành trình dập, nếu có sự cố thì đầu dập sẽ dừng lại, khắc phục
xong sự cố nó tự động quay về vị trí xuất phát.
Bớc 1 là bớc khởi động, đầu dập ở vị trí chờ trên cao. Khi nút ấn đợc ấn và máy không
bị trục trặc gì, đầu đập thực hiện bớc thứ hai là dập xuống. Khi đầu dập chạm công tắc
hành trình dới, tức là kết thúc hành trình dập, đầu dập thực hiện bớc tiếp theo là quay
trở về vị trí xuất phạt. Hoạt động của bớc này kết thúc khi dầu dập chạm công tắc hành
trình trên cao. Máy lại về trạng thái chờ. Trờng hợp đầu dập di xuống và có sự cố, thì
bớc hoạt động của máy là dừng đầu dập, khắc phục sự cố và quay về trạng thái chờ.
98
Chơng 6
Ngôn ngữ dạng soạn thảo cấu trúc ST và ngôn ngữ bảng lệnh
stl
Đây là ngôn ngữ lập trình bậc cao thiết kế cho tự động hoá các quá trình phức tạp. Ngôn
ngữ này chủ yếu dùng để thực hiện các quá trình phức tạp mà các ngôn ngữ đồ hoạ nh
(*imax: số vòng lặp*)
(*i: chỉ số của lệnh vòng FOR*)
(*cond: biến điều khiển từ quá trình công nghệ*)
imax:=max_ite;
cond:=X12
if not(cond(*báo động*))
then return;
end_if
(* Vòng lặp của quá trình công nghệ*)
for i (*chỉ số*):=1 to max_ite
do if 1<>2 then
SPcall();
99