Trang chủ » Hướng dẫn kết nối máy tính với PLC Siemens S7-200 dùng Freeport(2)
Hướng dẫn kết nối máy tính với PLC Siemens S7-200 dùng Freeport(2)
Smart Factory

Hướng dẫn kết nối máy tính với PLC Siemens S7-200 dùng Freeport(2)

Admin 24 Th12, 2019
Chia sẻ:
1502 0

Tiếp theo bài viết trước, chúng tôi sẽ tiếp tục giới thiệu các bạn cách sử dụng chế độ Freeport trên S7-200…

Hướng dẫn khởi động Freeport mode 

Như bài trước đã nhắc đến,  các byte nhớ đặc biệt SMB30 và SMB130 được dùng để cấu hình cho port 0 và port 1 hoạt động ở chế độ Freeport, đồng thời cho phép chọn tốc độ truyền, bit chẵn/lẻ và số bit dữ liệu. Các byte điều khiển này được mô tả như bảng dưới đây:

Port 0  Port 1  Mô tả
 Ô nhớ SMB30  Ô nhớ SMB130   msb
 SM30.6 và SM30.7  SM130.6 và SM130.7
  • pp : Chọn bit chẵn lẻ (parity)
  • 00 = no parity
  • 01 = even parity (parity chẵn)
  • 10 = no parity
  • 11 = odd parity (parity lẻ)
 SM30.5  SM130.5
  • d : số bit dữ liệu trong 1 ký tự
  • 0 = 8 bit cho 1 ký tự
  • 1 = 7 bit cho 1 ký tự
SM30.2 đến SM30.4 SM130.2 đến SM130 .4
  • bbb: tốc độ truyền của chế độ Freeport
  • 000 = 38400 baud (1920 baud đối với CPU 212)
  • 001 = 19200 baud
  • 010 = 9600 baud
  • 011 = 4800 baud
  • 100 = 2400 baud
  • 101 = 1200 baud
  • 110 = 600 baud
  • 111 = 300 baud
 SM30.0 và SM30.1  SM130.0 và SM130.1
  •  mm : chọn giao thức
  • 00 = PPI chế độ slave
  • 01 = chế độ Freeport
  • 10 = PPI chế độ master
  • 11 = dự trữ (mặc định là PPI chế độ slave)

Đối với port 0, một bit stop được thiết lập cho tất cả các cấu hình ngoại trừ trường hợp 7 bit dữ liệu không có parity, trường hợp này có 2 bit stop. Đối với port 1, một bit stop được thiết lập cho tất cả các cấu hình.

CHI TIẾT VỀ CÁC LỆNH ĐIỀU KHIỂN TRUYỀN THÔNG  PORT

Transmit (XMT) và Receive (RCV)

Lệnh truyền ( Transmit intruction-XMT) và ngắt truyền : Lệnh truyền cho phép S7-200 truyền lên đến 255 ký tự thông qua cổng COM. Ngắt truyền thông báo cho chương trình trong PLC S7-200 khi truyền thông hoàn tất.

Lệnh nhận (Receive intruction- RCV): Lệnh nhận ký tự được truyền vào thông qua cổng COM sau đó ngắt cho chương trình khi nhận hoàn tất. ta dùng vùng nhớ SM để cấu hình lệnh RCV để khởi động và dừng dựa trên ký tự đặc biệt hay một khoảng thời gian on.

Các lệnh này có cú pháp như sau:

Lệnh XMT thực hiện truyền dữ liệu trong bộ đệm dữ liệu (data buffer) TBL. Phần tử đầu tiên trong bộ đệm xác định số byte cần truyền, PORT xác định cổng truyền thông sử dụng để truyền.Lệnh RCV khởi đầu hoặc kết thúc một dịch vụ nhận thông điệp (Receive Message Service). Điều kiện bắt đầu và kết thúc thông điệp cần được định nghĩa để dịch vụ nhận thông điệp có thể hoạt động. Các thông điệp nhận được thông qua cổng chỉ định PORT được lưu trong bộ đệm dữ liệu TBL. Byte đầu tiên trong bộ đệm dữ liệu xác định số byte nhận được.

Các thông số sử dụng trong các lệnh XMT và RCV:

 Vào / Ra  Tóan hạng  Kiểu dữ liệu
 TABLE  VB, IB, QB, MB, SB, SMB, *VD , *AC  BYTE
 PORT  0 hoặc 1  BYTE

Lệnh XMT cho phép gởi 1 bộ đệm gồm 1 hoặc nhiều ký tự, tối đa là 255 ký tự. Sau khi ký tự cuối cùng của bộ đệm được truyền, một ngắt phát (ngắt số 9 đối với port 0 , ngắt số 26 đối với port 1) sẽ được tạo ra nếu 1 thủ tục xử lý ngắt (interrupt routine) được gắn với sự kiện hoàn tất truyền dữ liệu (transmit completed event). Có thể thực hiện truyền dữ liệu mà không sử dụng ngắt (ví dụ khi truyền dữ liệu đến máy in) bằng cách theo dõi các bit SM4.5 hoặc SM4.6 để phát hiện việc truyền dữ liệu đã hoàn tất hay chưa. Dạng bộ đệm dữ liệu của lệnh XMT như sau

 Count  M  E  S  S  A  G  E

Với:

Count : số byte cần truyền

ME …: các ký tự trong thông điệp

Sử dụng ngắt điều khiển ký tự (Character Interrupt Control) để nhận dữ liệu

Lệnh RCV cho phép nhận 1 hoặc nhiều ký tự, tối đa là 255 ký tự. Sau khi nhận được ký tự cuối cùng, một ngắt thu ( ngắt 23 đối với port 0 và ngắt 24 đối với port 1) được tạo ra nếu có một thủ tục xử lý ngắt được gắn với sự kiện hoàn tất nhận dữ liệu (receive message complete event). Có thể nhận dữ liệu không dùng đến ngắt bằng cách theo dõi ô nhớ SMB86. Ô nhớ SMB86 sẽ khác 0 khi chức năng nhận dữ liệu không tích cực hoặc việc nhận dữ liệu đã kết thúc. Ô nhớ này bằng 0 khi đang nhận dữ liệu. Bộ đệm dữ liệu của lệnh RCV có dạng như sau:

 Count  star char  M  E  S  S  A  G  E  end char

Với Count: Số byte nhận được

Star char : ký tự bắt đầu.

M …E : các ký tự của thông điệp.

End char : ký tự kết thúc.

Để lệnh RCV có thể hoạt động, cần phải định nghĩa điều kiện bắt đầu và kết thúc một thông điệp. Các ô nhớ chuyên dụng từ SMB86 đến SMB94 (đối với port 0) và từ SMB186 đến SMB194 ( đối với port 1) được sử dụng để định nghĩa các điều kiện này. Cần lưu ý rằng chức năng nhận dữ liệu tự động kết thức khi có lỗi parity hoặc lỗi tràn (overrun).

Để linh hoạt trong hỗ trợ giao thức, có thể sử dụng ngắt điều khiển ký tự để nhận dữ liệu. Mỗi ký tự nhận được đều làm phát sinh một ngắt. Ký tự nhận được được đặt trong ô nhớ SMB2 và trạng thái parity (nếu có sử dụng) được đặt ở bít SM3.0 ngay trước khi thủ tục xử lý ngắt gắn với sự kiện nhận ký tự được thực thi. Các ô nhớ SMB2 và SMB3 được chia sẻ giữa port 0 và port 1. Khi nhận được 1 ký tự ở port 0, ngắt gắn với sự kiện này (ngắt số 8) được thực thi, SMB2 chứa ký tự nhận được ở port 0 và SMB3 chứa trạng thái parity của ký tự đó. Khi nhận được 1 ký tự ở port 1, thủ tục ngắt gắn với sự kiện này (ngắt 25) được thực thi, SMB2 chứa ký tự nhận được ở port 1 và SMB3 chứa trạng thái parity của ký tự đó.

 Port 0  Port 1  Mô tả
 SMB86  SMB186
  •  Byte trạng thái nhận thông điệp:
  • n: 1 = thông điệp kết thúc do lệnh dừng của người sử dụng
  • r: 1 = thông điệp kết thúc: lỗi ở các thông số vào hoặc thiếu
  • các điều kiện bắt đầu hoặc kết thúc thông điệp..
  • e: 1 = Nhận được ký tự kết thúc
  • t: 1 = Thông điệp kết thúc do quá thời gian.
  • c: 1 = Thông điệp kết thúc do đã nhận được số ký tự tối đa.
  • p: 1 = Thông điệp kết thúc do lỗi parity
 SMB87  SMB187
 en  Sc  Ec  Il  c/m  Tmr  C  Bk  0
 Byte điều khiển nhận thông điệp
  •  cn:     0 = không cho phép chức năng nhận
  • 1 = Cho phép chức năng nhận .
  • Bit này được kiểm tra mỗi lần lệnh RCV được thực hiện
  • sc:     0 = Bỏ qua byte SMB88 hoặc SMB188
  • 1= Sử dụng giá trị các byte SMB88 hoặc SMB188 để xác định khởi đầu thông điệp
  • il:      0 = Bỏ qua byte SMW90 hoặc SMW190
  • 1= Sử dụng giá trị các byte SMW90 hoặc SMW 190 để xác định trạng thái nghỉ của đường truyền
  • c/m:   0 = Khoảng định thời là giữa các ký tự (inter – character timer)
  • 1 = Khoảng định thời là của thông điệp (message timer)
  • tmr:   0 = bỏ qua SMW92 hoặc SMW192
  • 1 = kết thúc nhận nếu vượt quá khoảng định thời trong SMW92 hay SMW192
  • bk:     0 = bỏ qua trạng thái dừng (break conditions)
  • 1 = Sử dụng trạng thái dừng như khởi đầu của thông điệp. Các bit của byte điều khiển được sử dụng   để định nghĩa các tham số dùng để nhận dạng thông điệp. Để xác định khởi đầu của thông điệp, các điều kiện bắt đầu thông điệp được AND luận lý và phải xuất hiện nối tiếp nhau (trạng thái nghỉ của đường truyền và ký tự bắt đầu ngay tiếp theo hoặc trạng thái dừng và ký tự bắt đầu ngay tiếp theo). Kết thúc của thông điệp được xác định bằng cách OR luận lý các điều kiện kết thúc thông điệp. Công thức để xác định điều kiện bắt đầu và kết thúc như sau:
  • Bắt đầu thông điệp = il *sc + bk *sc
  • Kết thúc thông điệp = ec + tmr + nhận được số ký tự tối đa
  • Một số ví dụ xác định điều kiện bắt đầu thông điệp:
  • 1. Trạng thái nghỉ của đường truyền:
  • il = 0 ; sc = 0; bk = 0 ; SMW90 >0
  • 2. Ký tự bắt đầu:
  • il = 0 ; sc = 1; bk = 0 ; bỏ qua SMW90
  • 3. Trạng thái dừng:
  • il = 0 ; sc = 1; bk = 1 ; bỏ qua SMW90
  • 4. Bất kỳ tín hiệu trả lời nào :
  • il = 1 ; sc = 0; bk = 0 ; SMW90 =0
  • (Thời gian định thời của thông điệp có thể được dùng để
  • kết thúc nhận thông điệp nếu không có tín hiệu trả lời )
  • 5. Trạng thái dừng và ký tự bắt đầu:
  • il = 0 ; sc = 1; bk = 1 ; bỏ qua SMW90
  • 6. Trạng thái nghỉ của đường truyền và ký tự bắt đầu:
  • il = 1 ; sc = 1; bk = 0 ; SMW90 >0
 SMB88  SMB188
  •  Ký tự bắt đầu thông điệp
 SMB89  SMB189
  •  Ký tự kết thúc thông điệp
 SMB90

SMB91

 SMB190

SMB191

  •  Khoảng thời gian nghỉ của đường truyền tính bằng ms. Ký tự đầu tiên nhận được sau khoảng thời gian này bắt đầu 1 thông điệp mới. SMB90 (SMB190) là byte cao và SMB91 (SMB191) là byte thấp.
 SMB92

SMB93

 SMB192

SMB193

  •  Khoảng thời gian giới hạn giữa các ký tự trong thông điệp hoặc của cả thông điệp tính bằng ms. Nếu   khoảng thời gian này bị vượt quá, việc nhận thông điệp sẽ kết thúc. SMB92 (SMB192) là byte cao và   SMB93 (SMB193) là byte thấp.
 SMB94  SMB194
  •  Số ký tự lớn nhất có thể nhận (từ 1 đến 255 byte)
  • Lưu ý: Giá trị này cần được đặt bằng kích thước lớn nhất có thể
  • của bộ đệm cả khi không được sử dụng làm điều kiện kết thúc thông điệp.

Đến đây, Chúng tôi xin tạm dừng phần hướng dẫn truyền thông giữa PLC S7-200 thông qua Freeport. Mong rằng bài viết này sẽ hỗ trợ phần nào cho những khúc mắc của các  bạn.

Mọi thông tin chi tiết về giải pháp và sản phẩm, xin vui lòng liên hệ với chúng tôi để được tư vấn miễn phí!

Từ khóa:
Chia sẻ:
1502 0

Bình luận

Bình luận đã bị đóng.