Sự truyền tin:

Một phần của tài liệu MẠNG TRUYỀN THÔNG CỒNG NGHIỆP (Trang 55 - 63)

A phát hiện xung đột, huỷ bỏ bức điện

2.2.6.Sự truyền tin:

Thụng tin thời gian thực và bộ đệm truyền tin:

Ứng dụng này được sử dụng để truyền bản tin một cỏch cú hiệu quả trong thời gian thực, nỳt CAN phải cú khả năng giữ đường bus và mang tớnh trội với giả thiết nỳt tin đú là đủ mức ưu tiờn cao để thắng sự phõn định trờn đường bus. Nếu một nỳt chỉ cú một bộ đệm truyền, nú phải truyền một bản tin sau đú

giải thoỏt bus trong khi CPU sa tải bộ đệm. Nếu một nỳt cú 2 bộ đệm truyền, một bộ đệm cú thể truyền trong khi bộ đệm thứ hai đang sa tải.

Cỏc ứng dụng đặc trưng của giao thức CAN cần cú 3 bộ đệm truyền tin. Với 3 bộ đệm này thỡ 1 bộ cú thể truyền, bộ đệm thứ hai cú thể sẵn sàng truyền ngay khi bộ đệm đầu tiờn hoàn thành việc truyền tin trong khi bộ đệm thứ 3 cú thể đang được sa tải bằng CPU. Bằng phần mềm ta cú thể dễ dàng duy trỡ sự đồng bộ hoỏ giữa cỏc bộ đệm với đường bus (Xem hỡnh sau).

Hỡnh 2.7. Cỏc bộ đệm truyền tin

Thờm vào đú 3 bộ đệm truyền tin cũn cho phộp một vài cấp độ của sự ưu tiờn của truyền tin. Phần mềm ứng dụng cú thể sắp xếp bản tin trong bộ đệm thứ hai trong khi nú đang làm việc trờn bộ đệm thứ 3. Cả bản tin thứ 2 và 3 đều cú thể xếp theo thứ tự và modul CAN cú thể chỉ dẫn rằng bản tin thứ 3 cú mức ưu tiờn cao hơn bản tin thứ 2 hay ngược lại. Khi đú bản tin nào cú mức ưu tiờn cao hơn sẽ được truyền trước.

Sự ưu tiờn truyền tin:

Ưu tiờn truyền tin là sự ưu tiờn đối với mỗi nỳt của cỏc bản tin chưa được truyền, sự ưu tiờn được so sỏnh giữa cỏc bộ đệm để sẵn sàng cho việc truyền tin. Bộ đệm truyền với mức ưu tiờn cao nhất sẽ được truyền trước. Vớ dụ, nếu bộ đệm truyền 0 cú mức ưu tiờn cao hơn bộ đệm truyền 1 thỡ thụng tin trong bộ đệm truyền 0 sẽ được gửi trước. Nếu hai bộ đệm cú cựng mức ưu tiờn thỡ bộ đệm nào cú địa chỉ cao hơn sẽ được truyền trước. Vớ dụ, nếu bộ đệm 1 cú cựng mức ưu tiờn với bộ đệm 0 thỡ thụng tin trong bộ đệm 1 sẽ được gửi trước. Cú 4 mức ưu tiờn trong truyền tin. Nếu TXPRI <1:0> trong thanh ghi điều khiển cho một bộ đệm riờng biệt nào đú được đặt lờn ‘11’ , bộ đệm sẽ cú mức ưu tiờn cao nhất. Nếu TXPRI <1:0> cho bộ đệm được đặt là ‘10’ hoặc ‘01’ thỡ bộ đệm sẽ cú mức ưu tiờn trung bỡnh. Và nếu TXPRI <.1:0> cho bộ đệm được đặt là ‘00’ thỡ bộ đệm sẽ cú mức ưu tiờn thấp nhất.

2.3.MODBUS

Modbus là một giao thức do hóng Modicon (sau này thuộc AEG và Schneider Automation) phỏt triển. Modbus thực chất là một chuẩn giao thức và dịch vụ thuộc lớp ứng dụng, vỡ vậy cú thể được thực hiện trờn cỏc cơ chế vận chuyển cấp thấp như TCP/IP, MAP (Manufactoring Message Protocol

Modbus định nghĩa một tập hợp rộng cỏc dịch vụ phục vụ trao đổi dữ liệu quỏ trỡnh, dữ liệu điều khiển và dữ liệu chuẩn đoỏn. Tất cả cỏc bộ điều khiển của Modicon đều sử dụng Modbus là ngụn ngữ chung. Modbus mụ tả quỏ trỡnh giao tiếp giữa một bộ điều khiển với cỏc thiết bị khỏc thụng qua cơ chế yờu cầu/đỏp ứng. Vỡ lý do đơn giản nờn Modbus cú ảnh hưởng tương đối mạnh đối với cỏc hệ PLC của cỏc nhà sản xuất khỏc. Cụ thể, trong mỗi PLC người ta cũng cú thể tỡm thấy một tập hợp con cỏc dịch vụ đó đưa ra trong Modbus. Đặc biệt trong cỏc hệ thống thu nhập dữ liệu và điều khiển giỏm sỏt (SCADA), Modbus hay được sử dụng trờn cỏc đường truyền RS-232 ghộp nối giữa cỏc thiết bị dữ liệu cuối (PLC, PC, RTU) với thiết bị truyền dữ liệu (Modem).

2.3.1 Cơ chế giao tiếp

Cơ chế giao tiếp ở Modbus phụ thuộc vào hệ thống truyền thụng cấp thấp. Cụ thể, cú thể phõn chia ra hai loại mạng Modbus chuẩn và Modbus trờn cỏc mạng khỏc (vớ dụ TCP/IP, Modbus Plus, MAP). Mạng Modbus chuẩn

Cỏc cổng Modbus chuẩn sử dụng giao diện nối tiếp RS-232C. Cỏc bộ điều khiển này cú thể được nối mạng trực tiếp hoặc qua modem. Cỏc trạm Modbus giao tiếp với nhau qua cơ chế chủ/tớ (Master/Slave), trong đú chỉ một thiết bị chủ cú thể chủ động gửi yờu cầu, cũn cỏc thiết bị tớ sẽ đỏp ứng bằng dữ liệu trả lại hoặc thực hiện một hành động nhất định theo như yờu cầu. cỏc thiết bị chủ thụng thường là cỏc mỏy tớnh điều khiển trung tõm và cỏc thiết bị lập trỡnh, trong khi cỏc thiết bị tớ cú thể là PLC hoặc cỏc bộ dữ liệu số chuyờn dụng khỏc.

Một trạm chủ cú thể gửi thụng bỏo yờu cầu tới riờng một trạm tớ nhất định, hoặc gửi thụng bỏo đồng loạt (broadcast) tới tất cả cỏc trạm tớ. Chỉ trong trường hợp nhận được yờu cầu riờng, cỏc trạm tớ mới gửi thụng bỏo đỏp ứng trả lại trạm chủ. Trong một thụng bỏo yờu cầu cú chứa địa chỉ trạm nhận, mó hàm dịch vụ bờn nhận cần thực hiện, dữ liệu đi kốm và thụng tin kiềm lỗi.

Modbus trờn cỏc mạng khỏc

Với một số mạng như Modbus Plus và MAP sử dụng Modbus là giao thức cho lớp ứng dụng, cỏc thiết bị cú thể giao tiếp theo cơ chế riờng của mạng đú. Vớ dụ trong giao tiếp tay đụi (Peer-to-Peer), mỗi bộ điều khiển cú thể đúng vai trũ là chủ hoặc tớ trong cỏc lần giao dịch (một chu kỳ yờu cầu – đỏp ứng) khỏc nhau. Một trạm cú thể cựng một lỳc cú quan hệ logic với nhiều đối tỏc, vỡ vậy nú cú thể đồng thời đúng vai trũ là chủ và tớ trong cỏc giao dịch khỏc nhau.

Nhỡn nhận ở mức giao tiếp thụng bỏo, giao thức Modbus vẫn tuõn theo nguyờn tắc chủ/tớ mặc dự phương phỏp giao tiếp mạng cấp thấp cú thể là tay đụi. Khi một bộ điều khiển gửi một yờu cầu thụng bỏo thỡ nú đúng vai trũ là chủ và chờ đợi đỏp ứng từ một thiết bị tớ. Ngược lại, một bộ điều khiển sẽ đúng vai trũ là tớ nếu nú nhận được thụng bỏo yờu cầu từ một trạm khỏc và phải gửi trả lại đỏp ứng.

Chu trỡnh yờu cầu-đỏp ứng

Giao thức Modbus định nghĩa khuụn dạng của thụng bỏo yờu cầu cũng như của thụng bỏo đỏp ứng, như được minh hoạ trờn Hỡnh 3.27.

Một thụng bỏo yờu cầu bao gồm cỏc phần tử sau:

 Mó hàm gọi chỉ thị hành động trạm tớ cần thực hiện theo yờu cầu. Vớ dụ, mó hóm 03 yờu cầu trạm tớ đọc nội dung cỏc thanh ghi lưu giữ và trả lại kết quả.

 Dữ liệu chứa cỏc thụng tin bổ sung mà trạm tớ cần cho việc thực hiện hàm được gọi. Trong trường hợp đọc thanh ghi, dữ liệu này chỉ rừ thanh ghi đầu tiờn và số lượng cỏc thanh ghi cần đọc.

 Thụng tin kiểm lỗi giỳp trạm tớ kiểm tra độ vẹn toàn của nội dung thụng bỏo nhận được.

Thụng bỏo đỏp ứng cũng bao gồm cỏc thành phần giống như thụng bỏo yờu cầu. Địa chỉ ở đõy là của chớnh trạm tớ đó thực hiện yờu cầu và gửi lại đỏp ứng. Trong trường hợp bỡnh thường, mó hàm được giữ nguyờn như trong thụng bỏo yờu cầu và dữ liệu chứa kết quả thực hiện hành động, vớ dụ nội dung hoặc trạng thỏi cỏc thanh ghi. Nếu xảy ra lỗi, mó hàm quay lại được sửa để chỉ thị đỏp ứng là một thụng bỏo lỗi, cũn dữ liệu mụ tả chi tiết lỗi đó xảy ra. Phần kiểm lỗi giỳp trạm chủ xỏc định độ chớnh xỏc của nội dung thụng bỏo nhận được.

2.3.2 Chế độ truyền

Khi thực hiện Modbus trờn cỏc mạng khỏc nhau như Modbus Plus hoặc MAP, cỏc thụng bỏo Modbus được đưa vào cỏc khung theo giao thức vận chuyển/liờn kết dữ liệu cụ thể. Vớ dụ, một lệnh yờu cầu đọc nội dung cỏc thanh ghi cú thể được thực hiện giữa hai bộ điều khiển ghộp nối qua Modbus Plus.

Đối với cỏc thiết bị ghộp nối qua mạng Modbus chuẩn, cú thể sử dụng một trong hai chế độ truyền ASCII hoặc RTU. Người sử dụng lựa chọn chế độ theo ý muốn, cựng với cỏc tham số truyền thụng qua cổng nối tiếp như tốc độ truyền, parity chẵn/lẻ v.v… Chế độ truyền cũng như cỏc tham số phải giống nhau đối với tất cả cỏc thành viờn của một mạng Modbus.

Chế độ ASCII

Khi cỏc thiết bị trong một mạng Modbus chuẩn giao tiếp với chế độ ASCII (American Standard Code for Information Interchange), mỗi byte trong thụng bỏo được gửi thành hai ký tự ASCII 7 bit, trong

Định địa chỉ Mó hàm Dữ liệu Kiểm soỏt lỗi Địa chỉ thiết bị Mó hàm Dữ liệu Kiểm soỏt lỗi Thụng bỏo đỏp ứng từ slave Thụng bỏo yờu cầu từ master (adsbygoogle = window.adsbygoogle || []).push({});

đú mỗi ký tự biểu diễn một chữ số hex. Ưu điểm của chế độ truyền này là nú cho phộp một khoảng thời gian trống tối đa một giõy giữa hai ký tự mà khụng gõy ra lỗi. Cấu trỳc một ký tự khung gửi đi được thể hiện như sau:

Start 0 1 2 3 4 5 6 P Stop

Mỗi ký tự khung bao gồm:

 1 bit khởi đầu (Startbit)

 7 bit biểu diễn một chữ số hex của byte cần gửi dưới dạng ký tự ASCII (0-9 và A-F), trong đú bit thấp nhất được gửi đi trước.

 1 bit parity chẵn/lẻ, nếu sử dụng parity.

 1 bit kết thỳc (Stopbit) nếu sử dụng parity hoặc 2 bit kết thỳc nếu khụng sử dụng parity. Chế độ RTU

Khi cỏc thiết bị trong một mạng Modbus chuẩn được đặt chế độ RTU (Remote Terminal Unit), mỗi byte trong thụng bỏo được gửi thành một ký tự 8 bit. Ưu điểm chớnh của chế độ truyền này so với chế độ ASCII là hiệu suất cao hơn. Tuy nhiờn, mỗi thụng bỏo phải được truyền thành một dũng liờn tục. Cấu trỳc một ký tự khung gửi đi được thể hiện như sau:

Start 0 1 2 3 4 5 6 7 P Stop

Mỗi ký tự khung bao gồm:

 1 bit khởi đầu (Startbit)

 8 bit của byte thụng bỏo cần gửi, trong đú bit thấp nhất được gửi đi trước.

 1 bit parity chẵn/lẻ, nếu sử dụng parity

 1 bit kết thỳc (Stopbit) nếu sử dụng parity hoặc 2 bit kết thỳc nếu khụng sử dụng parity.

2.3.3 Cấu trỳc bức điện

Một thụng bỏo Modbus bao gồm nhiều thành phần và cú chiều dài cú thể khỏc nhau. Trong một mạng Modbus chuẩn, nếu một trong hai chế độ truyền (ASCII hoặc RTU) được chọn, một thụng bỏo sẽ được đúng khung. Mỗi khung bao gồm nhiều ký tự khung cú cấu trỳc như được mụ tả ở phần trờn. Cỏc ký tự này sẽ được truyền đi liờn tục thành dũng ở chế độ RTU, hoặc cú thể giỏn đoạn với khoảng cỏch thời gian tối đa một giõy ở chế độ ASCII. Mục đớch của việc đúng khung là để đỏnh dấu khởi điểm và kết thỳc của một thụng bỏo, cũng như bổ sung thụng tin kiểm lỗi. Trường hợp thụng bỏo được truyền trọn vẹn cú thể phỏt hiện được và bỏo lỗi.

Hai chế độ truyền ASCII và RTU khụng những chỉ khỏc nhau ở cỏch mó hoỏ thụng tin gửi đi và cấu trỳc tự khung, mà cũn khỏc nhau ở cấu trỳc một bức điện gửi đi – hay núi cỏch khỏc là cấu trỳc thụng bỏo, cũng như biện phỏp kiểm lỗi.

Trong một mạng khỏc như MAP hay Modbus Plus, giao thức mạng cú quy định riờng về cấu trỳc khung thụng bỏo. Hỡnh thức định địa chỉ và phương thức truyền cũng hoàn toàn do giao thức mạng cụ thể định nghĩa, vỡ vậy phần địa chỉ nằm trong một thụng bỏo Modbus cú thể trở nờn khụng cần thiết trong quỏ trỡnh truyền dẫn. Tuy nhiờn, một địa chỉ Modbus sẽ được chuyển đổi thành một địa chỉ trạm tương ứng của mạng phớa dưới.

Khung ASCII

Trong chế độ ASCII, một thụng bỏo bắt đầu với dấu hai chấm (:), tức ký tự ASCII 3A và kết thỳc bằng hai dấu quay lại - xuống dũng (CRLF), tức hai ký tự ASCII 0D và 0A (Hỡnh 3.16). Mỗi byte trong thụng bỏo được truyền đi bằng hai ký tự ASCII, vỡ vậy cỏc ký tự được phộp xuất hiện trong cỏc phần cũn lại của khung là 9-0 và A-F.

Khởi đầu Địa chỉ Mó hàm Dữ liệu Mó LCR Kết thỳc

1 ký tự 2 ký tự 2 ký tự n ký tự 2 ký tự 2 ký tự

CR + LF Hỡnh 2.9 Khung thụng bỏo Modbus chế độ ASCII

Mỗi thiết bị tham gia mạng cú trỏch nhiệm liờn tục theo dừi đường truyền và phỏt hiện sự xuất hiện của dấu hai chấm. Khi dấu hai chấm nhận được thỡ hai ký tự tiếp theo sẽ mang địa chỉ của thiết bị được yờu cầu nhận thụng bỏo hoặc thiết bị đó gửi thụng bỏo đỏp ứng. Khoảng cỏch thời gian tối đa cho phộp giữa hai ký tự trong một thụng bỏo là một giõy. Nếu vượt quỏ giỏ trị này, bờn nhận sẽ coi là lỗi.

Khung ASCII sử dụng phương phỏp LRC (Longitudinal Redundancy Check) để cho việc kiểm lỗi. Chi tiết về phương phỏp này sẽ được mụ tả trong chương mục tiếp theo (Bảo toàn dữ liệu).

Khung RTU

Trong chế độ RTU, một thụng bỏo bắt đầu với một khoảng trống yờn lặng tối thiểu là 3.5 thời gian ký tự. Thực tế, người ta chọn thời gian đú bằng một số nguyờn lần thời gian ký tự, như được biểu thị bằng dóy (----) trờn hỡnh 3.17. ễ đầu tiờn được truyền sẽ là 8 bit địa chỉ, sau đú đến 8 bit mó hàm, một số byte tuỳ ý dữ liệu và cuối cựng là thụng tin kiểm lỗi CRC. Sau khi truyền ký tự cuối của mó CRC, khung thụng bỏo cũng phải được kết thỳc bằng một khoảng trống yờn lặng tối thiểu là 3.5 thời gian ký tự, trước khi bắt đầu một thụng bỏo mới. Thực chất, khoảng trống kết thỳc của một thụng bỏo cũng cú thể chớnh là phần khởi đầu bắt buộc của thụng bỏo tiếp theo.

Khởi đầu Địa chỉ Mó hàm Dữ liệu Mó LCR Kết thỳc

(----) 8 bit 8 bit nx8 bit 16 bit (----)

Hỡnh 2.10 Khung thụng bỏo Modbus chế độ RTU (adsbygoogle = window.adsbygoogle || []).push({});

Khỏc với chế độ ASCII, toàn bộ khung thụng bỏo RTU phải được truyền thành một dũng liờn tục. Nếu một khoảng trống yờn lặng lớn hơn 1.5 thời gian ký tự xuất hiện trước khi truyền xong toàn bộ khung, thiết bị nhận sẽ huỷ bỏ thụng bỏo chưa đầy đủ và cho rằng byte tiếp theo sẽ là điạ chỉ của một thụng bỏo mới.

Địa chỉ

Phần địa chỉ trong một khung thụng bỏo bao gồm hai ký tự (ASCII) hoặc tỏm bit (RTU). Cỏc giỏ trị địa chỉ hợp lệ nằm trong khoảng 0-247, trong đú địa chỉ 0 dành riờng cho cỏc thụng bỏo đồng loạt gửi tới tất cả cỏc trạm tớ. Nếu Modbus được sử dụng trờn một mạng khỏc, cú thể phương thức gửi đồng loạt khụng được hỗ trợ, hoặc được thay thế bằng một phương phỏp khỏc. Vớ dụ, Modbus Plus sử dụng một cơ sở dữ liệu toàn cục, được cập nhật trong mỗi chu kỳ quay vũng token.

Một thiết bị chủ sử dụng ụ địa chỉ để chỉ định thiết bị tớ nhận thụng bỏo yờu cầu. Sau khi thực hiện yờu cầu, thiết bị tớ đưa địa chỉ của mỡnh vào khung thụng bỏo đỏp ứng, nhờ vậy thiết bị chủ cú thể xỏc định thiết bị tớ nào đó trả lời. Trong một mạng Modbus chuẩn chỉ cú một trạm chủ duy nhất, vỡ thế ụ địa chỉ khụng cần thiết phải chứa cả địa chỉ trạm và trạm nhận.

Mó hàm

Giống như địa chỉ, phần mó hàm trong một khung thụng bỏo bao gồm hai ký tự (ASCII) hoặc tỏm bit (RTU). Cỏc giỏ trị hợp lệ nằm trong khoảng từ 1-225, trong đú cỏc mó hàm trong thụng bỏo yờu cầu chỉ được phộp từ 1-127. Tuy nhiờn, hầu hết cỏc thiết bị chỉ hỗ trợ một phần nhỏ số hàm trờn và một số mó hàm được dự trữ cho sau này. Một số hàm tiờu biểu được liệt kờ trong Bảng 3.8.

Khi một thụng bỏo gửi từ thiết bị chủ tới một thiết bị tớ, mó hàm chỉ định hành động mà thiết bị tớ cần thực hiện. Khi thiết bị tớ trả lời, nú cũng dựng chớnh mó hàm trả lại sẽ là mó hàm trong yờu cầu với bit cao nhất được đặt bằng 1 và phần dữ liệu sẽ chứa thụng tin chi tiết về lỗi đó xảy ra.

Một phần của tài liệu MẠNG TRUYỀN THÔNG CỒNG NGHIỆP (Trang 55 - 63)