Cách lập trình cho S7-200 nói riêng và PLC của SIEMENS nói chung dựa trên 2 phương pháp cơ bản: Phương pháp hình thang Ladder Logic viết tắt là LAD Phương pháp liệt kê lệnh Statement L
Trang 14.1 Phương pháp lập trình
4.2 Bảng lệnh của S7-200
4.3 Toán hạng và giới hạn cho phép
4.4 Giới thiệu về phần mềm Microwin
4.5 Cú pháp hệ lệnh của S7-200
Bài 4: Ngôn ngữ lập trình PLC S7-200
Trang 2Cách lập trình cho S7-200 nói riêng và PLC của SIEMENS nói chung dựa trên 2 phương pháp cơ bản:
Phương pháp hình thang (Ladder Logic viết
tắt là LAD)
Phương pháp liệt kê lệnh (Statement List
viết tắt STL)
4.1 Phương pháp lập trình
Trang 34
Trang 44
Trang 54
Trang 64.2 Tập lệnh của S7-200
4.2 Tập lệnh của S7-200
Trang 74.2 Tập lệnh của S7-200
Trang 84.3 Toán hạng và giới hạn cho phép
Trang 94.3 Toán hạng và giới hạn cho phép
Trang 104.4 Giới thiệu về phần mềm Step7-Microwin 4.0
Trang 114.5.1 L nh vào/ ra: ệ
Lệnh vào:
LD + Địa chỉ (Load): nạp giá trị logic địa chỉ sau câu lệnh vào đỉnh ngăn xếp, các bit cũ trong ngăn xếp được đẩy
xuống 1 bit, thông tin cũ S8 mất.
LDN + địa chỉ (Load Not): tương tự như trên chỉ khác nạp giá trị logic nghịch đảo.
LDI + địa chỉ (Load Immediate)
LDNI + địa chỉ (Load Not Immediate): Nạp tức thời giá trị logic có địa chỉ sau câu lệnh vào bit đầu tiên trong ngăn xếp,
4.5 Cú pháp hệ lệnh của S7-200
Trang 12Lệnh ra:
= + địa chỉ: sao chép giá trị logic từ đỉnh ngăn xếp đến địa chỉ sau câu lệnh Giá trị đỉnh ngăn xếp giữ nguyên.
= I + địa chỉ: sao chép tức thời giá trị logic từ đỉnh ngăn xếp đến địa chỉ sau câu lệnh.
4.5.1 Lệnh vào / ra
Trang 13A + địa chỉ: thực hiện phép toán “Và” giữa giá trị
logic ở đỉnh ngăn xếp với giá trị logic có địa chỉ sau câu lệnh, kết quả ghi đè lên đỉnh của ngăn xếp.
O + địa chỉ: thao tác tương tự như trên chỉ khác thực hiện phép toán “Hoặc”.
AN + địa chỉ:
ON + địa chỉ: tương tự như hai lệnh trên chỉ khác lấy giá trị logíc nghịch đảo của địa chỉ sau câu lệnh, thao tác với giá trị tại đỉnh ngăn xếp.
4.5.2 Lệnh thao tác logic
Trang 14AI + địa chỉ;
OI + địa chỉ;
ANI + địa chỉ;
ONI + địa chỉ : Hoàn toàn tương tự như 4 lệnh trên, nhưng thực hiện tức thời phép toán logic giữa giá trị logic đỉnh ngăn xếp với giá trị logic có địa chỉ sau
câu lệnh, kết quả ghi tại đỉnh của ngăn xếp
4.5.2 Lệnh thao tác logic
Trang 15S + địa chỉ (Set): Thực hiện phép đặt giá trị
logic lên 1 của địa chỉ sau câu lệnh với điều
kiện đỉnh ngăn xếp phải bằng 1.
R + địa chỉ (Reset): Thực hiện xoá giá trị logíc của các điểm có địa chỉ sau câu lệnh với điều
kiện đỉnh ngăn xếp bằng 1.
4.5.3 Lệnh đặt logic
4.5.3 Lệnh đặt logic
Trang 16Ngoài ra còn thực hi n giữa các bít trên ngăn xếp: ệ
ALD (And Load): thực hiện phép toán “Và” giữa 2 bit đầu tiên của ngăn xếp, kết quả ghi lại đỉnh, các bít còn lại từ S2 được kéo lên 1 bit.
OLD (Or Load): hoàn toàn tương tự như trên chỉ khác
phép toán “Hoặc”.
LPS (Logic Push): sao chép nội dung của bit đầu tiên vào bit thứ 2 của ngăn xếp, các bít còn lại đẩy xuống 1 bit, S8 cũ mất.
LRD (Logic Read): lấy giá trị logic của bit thứ 2 ghi vào bit đầu tiên của ngăn xếp, giá trị S0 cũ mất, các bit còn lại giữ nguyên.
LPP (Logic Pop): thực hiện kéo tất cả các bit trong ngăn xếp lên 1 bit S0 mất S8 chống.
Trang 18I 0.0
I 0.1 I 0.2
( )
Q1.0
Trang 205 LÖnh OLD
LD I 0.0
LD I 0.2 OLD
Trang 21( )
Q0.1
( )
Q0.0
Trang 22Chú ý:
Sơ đồ LAD ở trên không soạn thảo được với phần mềm hiện có, nó chỉ được dùng để mô tả mạch logic của chương trình STL tương ứng Khi dùng các lệnh LPS, LRD, LPP bắt buộc
phải viết trong STL.
Trang 234.5.5 Các lệnh tiếp điểm đặc biệt
Trang 244.5.6 Các lệnh so sánh
Trang 254.5.6 Các lệnh so sánh
Trang 26Với S7-200 có 2 loại rơle thời gian là:
Rơle thời gian không nhớ kí hiệu: TON
Rơle thời gian có nhớ kí hiệu: TONR
Với rơle thời gian không nhớ TON thời gian bắt đầu được tính từ khi đầu vào có sườn lên từ 0 1 Nếu thời
gian tín hiệu vào tồn tại nhỏ hơn thời gian đặt thì số liệu thời gian tức thời trên thanh ghi 16 bit tự xoá về 0 vì vậy đầu ra dưới dạng bit không lật trạng thái, còn khi thời gian còn khi thời gian tồn tại tín hiệu đầu vào lớn hơn tín hiệu đặt thì đầu ra dạng bit lật trạng thái từ 0 1 và được xoá
đi khi khi đầu vào bằng 0 vì vậy để xoá rơle thời gian dạng này có thể dùng tín hiệu vào về 0 hoặc dùng lệnh reset khi tín hiệu vào 0 về 0.
4.5.7 Lập trình sử dụng Rơle thời gian (Timer)
Trang 27Rơle thời gian có nhớ kí hiệu: TONR
Với loại TONR khi có sườn lên của tín hiệu vào thì rơle được kích bắt đầu tính thời gian Khi tín hiệu vào mất mà giá trị đếm được nhỏ hơn giá trị đặt thì số đếm lúc
trước được lưu giữ lại đến khi có sườn lên tiếp theo là
được đếm từ giá trị trước tăng lên đến khi giá trị đếm được lớn hơn hoặc bằng giá trị đặt đầu ra bit lật trạng thái vì vậy số đếm liên tục được tích luỹ do đó bắt buộc phải sử dụng
Trang 28Ngoài ra còn được chế tạo các Rơle thời gian có độ phân giải khác nhau và cũng có địa chỉ cụ thể.
Độ phân giải: 1ms
Độ phân giải: 10ms
Độ phân giải: 100ms Muốn xác định thời gian thực ta lấy số đếm đặt tại cửa kí hiệu là: PT nhân với độ phân giải vì vậy sai số xảy ra lớn nhất bằng độ phân giải.
Số đếm thời gian ở cửa PT có thể là bằng hằng số đặt trước do chương trình kí hiệu là K Nhưng giá trị đặt không được vượt quá 32767 Ngoài ra số đếm thời gian có thể chuyển từ các bộ nhớ 16 bit.VD: VW20; IW0, TW, CW…
Trang 29Ví dụ:
Trang 324.5.8 Lập trình sử dụng bộ đếm (Counter)
Trang 334.5.8 Lập trình sử dụng bộ đếm (Counter)
Trang 344.5.8 Lập trình sử dụng bộ đếm (Counter)
Trang 354.5.8 Lập trình sử dụng bộ đếm (Counter)
Trang 364.5.9 Các lệnh làm việc với số học
Trang 374.5.9 Các lệnh làm việc với số học
Trang 384.5.9 Các lệnh làm việc với số học
4.5.9 Các lệnh làm việc với số học
Trang 404.5.9 Các lệnh làm việc với số học
Trang 414.5.9 Các lệnh làm việc với số học
Trang 424.5.10 Lệnh tăng, giảm nội dung ô nhớ
Trang 434.5.10 Lệnh tăng, giảm nội dung ô nhớ
Trang 444.5.10 Lệnh tăng, giảm nội dung ô nhớ
Trang 454.5.11 Các lệnh dịch chuyển ô nhớ
Trang 464.5.11 Các lệnh dịch chuyển ô nhớ
Trang 474.5.12 Đồng hồ thời gian thực
Trang 484.5.12 Đồng hồ thời gian thực