Truyền thông trong mạng Profibus
--------------------------------
Nếu mod nào đọc bài viết này, xin bạn tham gia với ban điều hành,phân luống điện-điện tử thành các luồng nhỏ như sau:
+ Tài liệu tham khảo tổng hợp.
+ Điện tử cơ bản/điện tử công suất
+ Điện tử dân dụng (truyền thanh, truyền hình)
+Vi điền khiển (8051,AVR,PIC)
+ Điện tử công nghiệp (mạng công nghiệp , PLC, ) như vậy vừa dễ cho ai đọc và tham gia vào diễn đàn
------------------------------
mạng profibus là mạng cấp cao thứ 2 sau ethernet. và trên mạng AS-i, nói về lý thuyết về mạng này thì rất khó hiểu, nhiều khi ta đọc hết lý thuyết về nó cũng chẳng hiểu nó làm việc ra sao.
-----------------------------
Tại sao phải dùng mạng công nghiệp trong sản xuất: các bạn cứ tưởng tượng rằng , 1 nhà máy rộng vài ngàn mét vuông, các cố máy hoạt động đan xen, ở cự ly xa....
Dùng mạng điều khiển bạn sẽ tiết kiệm chi phí, quản lý sản xuất dễ dàng, theo dõi quá trình đơn giản--> hiệu quả sản xuất.
-----------------------------
Tôi hi vọng bài viết này giúp ích cho các bạn có được hình dung nào đó về mạng này
đây là một sơ đồ cơ bản Profibus - DP (thế nào DP hay gì đó các bạn hãy tự tìm hiểu)
nói về mạng là phải nói về sự kết nối của nhiều thành phần. Giống như 1 mạng máy tính có nhiều trạm. Một mạng profibus đơn giản nhất sẽ có 1 master, và các slave, tôi trình bày 1 mạng Profibus-Dp của siemen:
+ master - s7-300, có kèm module giao tiếp profibus(giống máy tính cấn card mạng)
+ s7-200 máy slave (có module giao tiếp EM277)
như vậy với 1 PlC s7-300, 2 Plc s7-200, 2 module Em277 như hình ta sẽ tạo ra mạng Profibus rồi.
------------------------------
TỔNG QUÁT:
Quan trọng nhất là hiểu được nguyên tắc của Em 277. các bước thực hiện như sau:
+ vào simatic S7: khai báo vùng địa chỉ dữ liệu vào ra của các slave trên master
+ Khai báo offset cho Em 277 để xác định vùng dữ liệu vào ra trên slave( vùng V của s7-200)
+ tiến hành viết chương trình theo yêu cầu.
------------------------------
CỤ THỂ:
1. nguyên tắc đặt vùng nhớ của các slave trên master:
- tùy thuộc vào độ lớn dữ liệu truyền qua mạng mà ta thiết lập độ lớn vùng nhớ cho trao đổi dữ liệu.
ví dụ: ta chỉ truyến tín hiệu khởi động 1 motor ở slave 1 tử master đặt cách động cơ 300m. Ta thấy chỉ cần truyền một bít là có thể tắt/mở động cơ được rồi --> ta chọn độ lớn :2byte in/2 byte out
-vùng nhớ vào của master là vùng I, nó nhận các dữ liệu chuyển đến từ 1 slave mà nó định nghĩ
-Vùng nhớ ra của master là Q, nó sẽ truyền tín hiệu ra các slave.
ví dụ : tín hiệu 2byte in/2 byte out (vào/ra của slave 1 trên master): IB10/IB12 và QB10/QB12 (con số 10 là do mình tự chọn cho các slave sao cho không trùng nhau, con số 12 thể hiện rằng nó có độ lớn 2 byte)
tóm lại : Giả sử đặt địa chỉ của slave như sau:
slave 1:IN: IB10/IB12 ; OUT: QB10/QB12
slave 2:IN: IB20/IB22 ; OUT: QB20/QB22
------------------------------
2. Nguyên tắc truyền dữ liệu của em277:
+ EM 277 có offset bằng bao nhiêu thì vùng V trên slave sẽ bắt đầu từ vị trí đó:
ví dụ: slave 1 offset 10 --> vúng nhớ bắt đầu cho trao đổi dữ liệu trên slave 1 là VB10 (có thể chọn số khác tùy mình, nhưng con số đó sẽ là bắt đầu vùng nhớ nhận/truyền dữ liệu của slave)
theo đó: chọn:
slave 1: offset 10--> vùng nhận dữ liệu của slave 1 là VB10/VB11 ( con số VB12 có được là do ta qui định độ lớn của dữ liệu truyền là 2byte mà ở phần 1 có nói). Kế ngay tiếp vùng nhận sẽ là vùng truyền dữ liệu cũng có độ lớn 2byte: VB12/VB13
--------------------------------
xác định vùng nhận/truyền dữ liệu làm gì?
- Khi ta gửi dữ liệu lên mạng thì nó sẽ tự động chuyển tới vùng nhớ mà ta qui định, khi đó ta chỉ việc đọc vùng nhớ đó là ok!
Ví dụ; đơn giản như sau:
Truyền 1 bit điều khiển từ master xuống slave 1 chẳng hạn :
---> xuất ra vùng nhớ ra trên master mà slave 1 đã được qui định. cụ thể là QB10/QB12
ví dụ chọn bit Q10.0 chẳng hạn
---> khi đó ở slave 1 chỉ cần đọc nội dung của V10.0 đó cũng chính là nội dung của Q10.0. quá dễ!
Hãy nhìn vào hình vẽ sau sẽ dễ hiểu hơn:
--------------------------------
Nếu mod nào đọc bài viết này, xin bạn tham gia với ban điều hành,phân luống điện-điện tử thành các luồng nhỏ như sau:
+ Tài liệu tham khảo tổng hợp.
+ Điện tử cơ bản/điện tử công suất
+ Điện tử dân dụng (truyền thanh, truyền hình)
+Vi điền khiển (8051,AVR,PIC)
+ Điện tử công nghiệp (mạng công nghiệp , PLC, ) như vậy vừa dễ cho ai đọc và tham gia vào diễn đàn
------------------------------
mạng profibus là mạng cấp cao thứ 2 sau ethernet. và trên mạng AS-i, nói về lý thuyết về mạng này thì rất khó hiểu, nhiều khi ta đọc hết lý thuyết về nó cũng chẳng hiểu nó làm việc ra sao.
-----------------------------
Tại sao phải dùng mạng công nghiệp trong sản xuất: các bạn cứ tưởng tượng rằng , 1 nhà máy rộng vài ngàn mét vuông, các cố máy hoạt động đan xen, ở cự ly xa....
Dùng mạng điều khiển bạn sẽ tiết kiệm chi phí, quản lý sản xuất dễ dàng, theo dõi quá trình đơn giản--> hiệu quả sản xuất.
-----------------------------
Tôi hi vọng bài viết này giúp ích cho các bạn có được hình dung nào đó về mạng này
đây là một sơ đồ cơ bản Profibus - DP (thế nào DP hay gì đó các bạn hãy tự tìm hiểu)
nói về mạng là phải nói về sự kết nối của nhiều thành phần. Giống như 1 mạng máy tính có nhiều trạm. Một mạng profibus đơn giản nhất sẽ có 1 master, và các slave, tôi trình bày 1 mạng Profibus-Dp của siemen:
+ master - s7-300, có kèm module giao tiếp profibus(giống máy tính cấn card mạng)
+ s7-200 máy slave (có module giao tiếp EM277)
như vậy với 1 PlC s7-300, 2 Plc s7-200, 2 module Em277 như hình ta sẽ tạo ra mạng Profibus rồi.
------------------------------
TỔNG QUÁT:
Quan trọng nhất là hiểu được nguyên tắc của Em 277. các bước thực hiện như sau:
+ vào simatic S7: khai báo vùng địa chỉ dữ liệu vào ra của các slave trên master
+ Khai báo offset cho Em 277 để xác định vùng dữ liệu vào ra trên slave( vùng V của s7-200)
+ tiến hành viết chương trình theo yêu cầu.
------------------------------
CỤ THỂ:
1. nguyên tắc đặt vùng nhớ của các slave trên master:
- tùy thuộc vào độ lớn dữ liệu truyền qua mạng mà ta thiết lập độ lớn vùng nhớ cho trao đổi dữ liệu.
ví dụ: ta chỉ truyến tín hiệu khởi động 1 motor ở slave 1 tử master đặt cách động cơ 300m. Ta thấy chỉ cần truyền một bít là có thể tắt/mở động cơ được rồi --> ta chọn độ lớn :2byte in/2 byte out
-vùng nhớ vào của master là vùng I, nó nhận các dữ liệu chuyển đến từ 1 slave mà nó định nghĩ
-Vùng nhớ ra của master là Q, nó sẽ truyền tín hiệu ra các slave.
ví dụ : tín hiệu 2byte in/2 byte out (vào/ra của slave 1 trên master): IB10/IB12 và QB10/QB12 (con số 10 là do mình tự chọn cho các slave sao cho không trùng nhau, con số 12 thể hiện rằng nó có độ lớn 2 byte)
tóm lại : Giả sử đặt địa chỉ của slave như sau:
slave 1:IN: IB10/IB12 ; OUT: QB10/QB12
slave 2:IN: IB20/IB22 ; OUT: QB20/QB22
------------------------------
2. Nguyên tắc truyền dữ liệu của em277:
+ EM 277 có offset bằng bao nhiêu thì vùng V trên slave sẽ bắt đầu từ vị trí đó:
ví dụ: slave 1 offset 10 --> vúng nhớ bắt đầu cho trao đổi dữ liệu trên slave 1 là VB10 (có thể chọn số khác tùy mình, nhưng con số đó sẽ là bắt đầu vùng nhớ nhận/truyền dữ liệu của slave)
theo đó: chọn:
slave 1: offset 10--> vùng nhận dữ liệu của slave 1 là VB10/VB11 ( con số VB12 có được là do ta qui định độ lớn của dữ liệu truyền là 2byte mà ở phần 1 có nói). Kế ngay tiếp vùng nhận sẽ là vùng truyền dữ liệu cũng có độ lớn 2byte: VB12/VB13
--------------------------------
xác định vùng nhận/truyền dữ liệu làm gì?
- Khi ta gửi dữ liệu lên mạng thì nó sẽ tự động chuyển tới vùng nhớ mà ta qui định, khi đó ta chỉ việc đọc vùng nhớ đó là ok!
Ví dụ; đơn giản như sau:
Truyền 1 bit điều khiển từ master xuống slave 1 chẳng hạn :
---> xuất ra vùng nhớ ra trên master mà slave 1 đã được qui định. cụ thể là QB10/QB12
ví dụ chọn bit Q10.0 chẳng hạn
---> khi đó ở slave 1 chỉ cần đọc nội dung của V10.0 đó cũng chính là nội dung của Q10.0. quá dễ!
Hãy nhìn vào hình vẽ sau sẽ dễ hiểu hơn:
Comment