Trờng Đại Học Công Nghệ Khoa Điện Tử-Viễn Thông Mở đầu Ngày nay, việc xây dựng mạng điều khiển nhà máy, xí nghiệp, công xởng cần thiết Nó mang lại hiệu kinh tế cao mà phần khẳng định đợc tiến khoa học công nghệ khả ứng dụng khoa học công nghệ vào ứng dụng khác Để thực thi mạng điều khiển hay mạng nói chung nhiệm vụ phải lựa chọn đợc giao diện vật lý giao thức mạng để cài đặt giao diện vật lý Về giao diƯn vËt lý Cã nhiỊu chn giao diƯn vËt lý mà lựa chon để thực thi cho mô hình Chẳng hạn nh chuẩn RS232, RS485, Profibus, Device Net, Control Net, hay Ethernet Nh−ng tuú vào mục đích yêu cầu ứng dụng mà ta lựa chọn cấu hình cho phù hợp Hiện chuẩn RS485 chuẩn đợc sử dơng phỉ biÕn c«ng nghiƯp Nã cã nhiỊu −u điểm chuẩn cao đơn giản, dễ thực thi Do yêu cầu nghành công nghiệp không cao, đáp ứng đợc yêu cầu tốc độ nh khoảng cách truyền Còn chuẩn vật lý mà từ trớc đến thờng sử dụng u điểm RS485 lại râ rƯt (VÝ dơ chn RS232) Chóng ta cã thĨ nhận đợc u điểm so với chuẩn RS232 thông qua số mặt sau đây: Chuẩn RS485 có khả thực mạng liên kết điểm- điểm nh liên kết đa điểm Trong hệ thèng ®a ®iĨm nã cã thĨ cho phÐp nhiỊu Slave giao tiếp mạng( tối đa 32 Slave), chuẩn RS232 thực liên kết điểm điểm Chuẩn RS485 có khả chống nhiễu tốt RS232 cách dùng cặp dây xoắn đôi để khử nhiễu làm suy giảm tín hiệu trình truyền Nếu sử dụng chuẩn RS485 khoảng cách truyền lớn so với chuẩn RS232 Tốc ®é trun tèi ®a cđa RS485 lµ 10Mbps, RS232 100Kbps Khoảng cách truyền RS485 lớn khoảng cách truyền RS232 Với RS485 1200m RS232 tối đa 15m Với khoảng cách chuẩn RS485 hoàn toàn đáp ứng đợc mặt khoảng cách tốc độ truyền thông cần thiết công nghiệp Nguyễn Phi Hùng Lớp K46ĐC Trờng Đại Học Công Nghệ Khoa Điện Tử-Viễn Thông Hầu hết tất máy công cụ dùng công nghiệp điều khiển đợc nh PLC, CNCđều sử dụng cổng truyền thông RS485 thay cho RS232 nên tạo điều kiện cho chuẩn RS485 đợc sử dụng công nghiệp rộng rãi Về giao thức cài đặt cho mạng Nh nãi ë trªn Modbus chØ cã líp (Application, Datalink, lớp Physic) tơng ứng với lớp mô hình ứng dụng OSI Trên lớp sử dụng giao thức hoàn toàn độc lập Các lớp sử dụng giao thức phù hợp với lớp tơng ứng với mạng khác nh mạng Ethernet, WanVì không gây tốn cho ngời sử dụng trình cài đặt dễ dàng trình sử dụng nh nâng cấp Với lý nh mà giao thức truyền thông Modbus chuẩn truyền thông công nghiệp RS485 ®−ỵc lùa chän ®Ĩ thùc thi cho mơc ®Ých cđa đề tài Chơng Tổng quan giao thức truyền thông Modbus 1.1 Mô tả chung giao thức Modbus Giao thức truyền thông Modbus đợc cung cấp Modicon Inc(AEG Schneider Automation International S.A.S) Nã lµ mét giao thøc đơn giản, bao gồm lớp (lớp vật lý, lớp datalink, líp øng dơng) t−¬ng øng víi líp mô hình tham chiếu OSI Vị trí lớp mô hình tham chiếu OSI đợc mô tả nh hình vẽ dới đây: Bảng 1: Các lớp Modbus mô hình tham chiếu OSI Mô hình tham Mạng truyền chiếu OSI thông Modbus Application Application Presentation Empty Sesion Empty Transport Empty Network Empty Data link Data link Physical Physical Cùng với chuẩn nối tiếp công nghiệp đời từ năm 1979 phát triển Nguyễn Phi Hùng Lớp K46ĐC Trờng Đại Học Công Nghệ Khoa Điện Tử-Viễn Thông Hiện mạng truyền thông Modbus cho phép hàng triệu thiết bị giao tiếp với Cấu trúc modbus ngy cng đợc phát triển công nghiệp ngày đơn giản dễ sử dụng Giao thức MODBUS giao thức request/response ( yêu cầu/trả lời ) cung cấp dịch vụ thông qua hàm chúng Mã hàm MODBUS thành phần giao thức khối liệu (PDUs) request/response, ngày MODBUS đợc phát triển cách sử dụng giao thức sau: Giao thức TCP/IP mạng Ethernet Giao thức truyền tin không đồng cách sử dụng chuẩn truyền thông nh: RS-232, RS-422, RS-485, sợi quang, radio ) MODBUS PLUS Một mạng truyền qua tốc độ cao Dới sơ đồ mô tả giao thức khác đợc sử dụng modbus để xây dựng mạng truyền thông Hình 1: Mô hình giao thøc trun th«ng cã thÕ sư dơng Modbus Giao thức MODBUS cho phép thành phần giao tiếp với cách dễ dàng với tất kiểu cấu trúc mạng Tất kiểu thiÕt bÞ (PLC-Programmable Logic Controler, HMI, Control panel, Driver, Motion control, I/O device…) cã thĨ sư dơng giao thøc MODBUS để xây dựng mạng điều khiển từ xa Một vài kiểu giao tiếp đựơc xây dựng đờng trun nèi tiÕp, m¹ng Ethernet sư dơng giao thøc TCP/IP Các Gateway cho phép giao tiếp vài kiểu bus mạng sử dụng giao thức MODBUS Dới mô hình vài Nguyễn Phi Hùng Lớp K46ĐC Trờng Đại Học Công Nghệ Khoa §iƯn Tư-ViƠn Th«ng kiĨu giao tiÕp sư dơng giao thøc MODBUS Hình 2: Các mô hình giao tiếp sử dụng giao thức Modbus 1.2 Các lớp đợc định nghÜa giao thøc trun th«ng Modbus Nh− giíi thiƯu trên, giao thức Modbus sử dụng lớp để xây dựng mạng hoàn chỉnh là: lớp vật lý (physic), lớp liên kết liệu (datalink), lơp ứng dụng (application) Sau phần mô tả chi tiết lớp 1.2.1 Lớp Vật lý(Physical layer) 1.2.1.1 Giíi thiƯu chung Mét ®−êng trun nèi tiÕp thùc hiƯn giao thức MODBUS phải có giao diện điện phù hợp với chuẩn EIA/TIA-232 EIA/TIA 485 ( đợc gọi chuẩn RS-232/RS-485) Các chuẩn cho phép thực liên kết điểm-điểm đa điểm, cách thực cấu hình dây dây Trong mét hƯ thèng MODBUS chØ cã mét tr¹m truy cËp Master có nhiều Slave(tối ®a cã 32 Slaves) cã thĨ kÕt nèi víi mạng cách sử dụng chuẩn RS485 Trong hệ thống MODBUS chuẩn, tất thiết bị ®−ỵc nèi víi b»ng mét Cable trung kÕ Cable trung kế đợc tạo thành đờng dây dây (có cấu tạo nh cấu hình 2-wire) có dạng nh cặp dây cân bằng, liệu đợc truyền theo hớng, mà tần số mặc định 9600bps Mỗi thiết bị mạng đợc kết nối theo cách sau: Nối trực tiếp cable trung kế, tạo thành dãy điểm truy cập Nguyễn Phi Hùng Lớp K46ĐC Trờng Đại Học Công Nghệ Khoa Điện Tử-Viễn Thông Để tạo thành mạng bus Tại điểm truy cập thụ động(passive Tap), slave đợc nối với bus cable dẫn (Derivation cable) Và điểm truy cập Active Tap slave đợc nối với bus cable riêng(specific cable) Các thiết bị đợc nối với cable cách sử dụng đầu cắm RJ45, D9 Để hiểu rõ thành phần đờng truyền nói tìm hiểu cụ thể phần 1.2.1.2 Các giao diện điện Modbus 1.2.1.2.1 Mô tả chung giao diện ®iƯn cho Modbus Mét ®−êng trun nèi tiÕp ®a ®iĨm đợc tạo cable trung kế, cable khác để liên kết Slave với bus Tại đầu kết cuối đờng trung kế (LT) phải đợc phối hợp trở kháng hai đờng dẫn cân Và đờng trung kế ngời ta sử dụng giao diện ITr(Trunk Interface) H×nh sau sÏ minh häa mét cÊu h×nh bus nối tiếp Đặc điểm bus nh sau: Thiết bị đợc tích hợp vào thu phát đợc nối với cable trung kế cách sư dơng mét passive tap (nh− c¸ch nèi cđa slave master) Giữa passive tap slave ngời ta sử dụng giao diện có tên IDv(Derivation interface) Thiết bị không đợc tích hợp vào thu phát đợc nối với cable trung kế cách sử dụng active tap cable dẫn(nh cách nối slave 2) Giữa active tap slave ngời ta sử dụng giao diện có tên AUI( Attachment Unit Interface) Thiết bị đợc nèi trùc tiÕp vµo cable trung kÕ sư dơng mét daisy-chain( nh cách nối salve n) Hình 3: Các phơng pháp kết cuối thiết bị vào mạng Modbus Nguyễn Phi Hùng Lớp K46ĐC Trờng Đại Học Công Nghệ Khoa Điện Tử-Viễn Thông 1.2.1.2.2 Định nghĩa cho cấu hình Modbus dây Trong cấu hình dây ( hình ) sử dụng đôi dây làm bus là: D0 D1, dây có điểm truy cập, điểm truy cập nơi nối slave vào bus Tại đầu cuối cặp dây có điện trở Pull Up Pull Down đợc đa vào để thực cấu hình đa điểm, nhở có trạng thái trở kháng cao hai dây Ngoài hai dây có dây dùng chung cho Master Slave Hình vẽ mô tả cụ thể bảng định nghĩa mạch sử dụng chuẩn RS-485 cấu hình dây nh sau: Hình 4: Cấu hình Modbus dây Bảng 2: Các loại mạch sử dụng cấu hình dây Loại mạch Dùng cho Yêu cầu thiết RS-485 ITr IDv loại thiết bị D1 D1 I/O X B/B D0 D0 I/O X A/A’ X C/C’ Common Common Mô tả bị Điện áp dây D1 V1 Điện áp dây D0 V0 Tín hiệu nguồn nuôi dùng chung X: có nghĩa mạch đợc thực thiết bị nằm thiết bị Nguyễn Phi Hùng Lớp K46ĐC Trờng Đại Học Công Nghệ Khoa Điện Tử-Viễn Thông Tín hiệu logic hai dây đợc định nghĩa nh sau: Nếu VD1>VD0 tơng ứng với trạng thái 1[OFF] Nếu VD1 Va cho trạng thái đờng truyền - OFF) Nguyễn Phi Hùng Lớp K46ĐC Trờng Đại Học Công Nghệ Khoa Điện Tử-Viễn Thông Dây A đờng truyền Điện áp TxD0 TxD0 Output A A Va(NÕu Va > Vb cho trạng thái đờng truyền - ON) Dây B đờng nhận Điện áp RxD1 RxD1 Input B B Vb(Nếu Vb > Va cho trạng thái đờng nhận - OFF) Dây A đờng nhận Điện áp RxD0 RxD0 Input A A Va(Nếu Va > Vb cho trạng thái đờng truyền - ON) Com Com mon mon X C/C Tín hiệu nguồn nuôi dùng chung 1.2.1.2.4 Khả tơng thích cabling cấu hình dây dây Trong mạng Modbus giao diện dây dây đợc thực thi Khi hệ thống cabling dây đợc mắc nh sau: Tín hiệu TX0 đợc nối với tín hiệu RX0, chuyển chúng sang dây tín hiệu D0 Tín hiệu TX1 đợc nối với tín hiệu RX1, chuyển chúng sang tín hiệu D1 Các điện trở đầu cuối Pull-up, Pull-down đợc xếp lại để tơng thích với tín hiệu D0 D1 Hình vẽ sau ví dụ cách thực thi thiết bị đợc thiết kế giao diện dây hệ thống cabling dây Trong đó: Slave đợc thực thi giao diện dây, lại Slave Slave đợc thực thi giao diện dây Hình 6: Thiết bị đợc thiết kế giao diện dây kết nối cấu hình dây Nguyễn Phi Hùng Lớp K46ĐC Trờng Đại Học Công Nghệ Khoa Điện Tử-Viễn Thông Trong sơ đồ này, với thiết bị đợc chế tạo theo giao diện dây thì: Dây TxD0 đợc nối với dây RxD0và sau đợc nối với dây D0 trung kế Dây TxD1 đợc nối với dây RxD1 sau đợc nối với dây D1 trung kế Ngợc lại: Thiết bị đợc thiết kế dùng cho giao diện dây hoạt động đợc cấu hình mạng dây Hình 7: Thiết bị đợc thiÕt kÕ giao diƯn d©y cã thĨ kÕt nèi cấu hình dây Trong đó: Slave loại thiết bị giao diện dây, Slave Slave loại thiết bị giao diện dây, nhng chúng hoạt động cấu hình mạng dây nh sơ đồ 1.2.1.2.5 Định nghĩa giao diện RS-232 cho Modbus Các thiết bị cã thĨ thùc hiƯn mét giao diƯn RS-232 gi÷a DCE DTE, cụ thể nh sau: Bảng 4: Giao diện RS232 Modbus Chó thÝch: Ngun Phi Hïng Líp K46ĐC Trờng Đại Học Công Nghệ Khoa Điện Tử-Viễn Thông X tín hiệu đợc yêu cầu giao diện RS-232 đợc lựa chọn để thực thi Các tín hiệu dây phải tơng thích với chuẩn điện RS-232 Chân TxD thiết bị phải đợc nối với chân RxD thiết bị khác Chân RTS thiết bị phải đợc nối với chân CTS thiết bị khác Chân DTR thiết bị phải đợc nối với chân DSR thiết bị khác 1.2.1.2.6 Thực thi hệ thống ®a ®iĨm HƯ thèng ®a ®iĨm chØ ®−ỵc thùc thi dïng chuÈn RS-485 Khi thùc thi mét hÖ thèng đa điểm, yêu cầu chung cho hai loại giao diện dây dây là: Số lợng thiết bị tối đa phát lặp: chuẩn RS-485 đợc thực thi Modbus số lợng thiết bị nhiều 32 kể phát lặp dùng để tái tạo lại tín hiệu đờng truyền Cấu hình mạng: cấu hình RS-485 Modbus phát lặp có cable trung kế, với thiết bị đợc nối trực tiếp hay nối gián tiếp qua cable dẫn xuất Cable trung kế đợc gọi Bus Độ dài Cable: o Độ dài Cable trung kế phải đợc giới hạn Giá trị cực đại phụ thuộc vào tốc độ truyền, độ dài tối đa lên tới 1200m o Độ dài Cable dẫn xuất không vợt 20m Nếu có nhiều điểm truy cập sử dụng N Cable dẫn xuất độ dài tối đa đợc xác định 40/N(m) Kết cuối đờng truyền: o Một dội lại đờng truyền kết trở kháng không liên tục có sóng qua Để giảm thiểu dội đến từ hai đầu cable RS-485 phải đợc đặt điện trở kết cuối đờng truyền hai đầu cuối bus o Công việc quan trọng đờng truyền đợc kết cuối hai đầu truyền hai hớng, nhng không cho phép đặt hai LT cặp dây D1-D0, không đợc đặt LT cable dẫn xuất o Mỗi LT phải đợc nối hai dây dẫn đờng cân D1 D0 o Điện trở LT phải có giá trị 150 Ohms (0.5W) o Một tụ điện(10nF,10V) đợc mắc nối tiếp với điện trở 120ohms(0.25W) lựa chọn tốt thực thi giao diện 1.2.1.3 Các loại giao diện khí Nguyễn Phi Hùng 10 Lớp K46ĐC Trờng Đại Học Công Nghệ Khoa Điện Tử-Viễn Thông có tác dụng reset phần cứng PID Chân không đợc nối nh không đợc sử dụng ICSP1 ICSP ICSP2 ICSP ICSP3 ICSP ICSP4 ICSP GND POWER Chân đợc nối mass trình sử dụng ANALOG_IN INPUT Đầu vào điều khiển tơng tự, chân không đợc nối nh PID không hoạt động mode tơng tự 5VOUT POWER Hai chân cung cấp điện áp 5V có dòng 250mA Chân không đợc 10 5VOUT POWER nèi nÕu nh− kh«ng sư dơng 11 GND POWER Chân đợc nối mass trình sử 12 _BRAKE INPUT 13 RX INPUT dụng Khi chân đợc đa xuống mức thấp PID xoá ghi PWM reset vài ghi bên cđa nã nÕu sư dơng mode Trapezoidal Cã møc điện áp TTL, lối vào liệu đến từ Master 14 TX OUTPUT Có mức điện áp TTL cho phÐp trun d÷ liƯu tíi Master 15 NO_CONECT NC 16 POS_LIMIT INPUT 17 NEG_LIMIT INPUT 18 NO_CONECT NC 19 _ERROR OUTPUT Chân có tác dụng để cảnh báo dòng điện vào PID cao gía trị cho phép nhiệt độ cao Khi có tợng D12 sáng 20 GND POWER Chân đợc nối mass sư dơng Ngun Phi Hïng 60 Líp K46§C Trờng Đại Học Công Nghệ Khoa Điện Tử-Viễn Thông Sơ đồ kết nối điều khiển động MINI - PID với motor đợc thực nh sau: Hình 41: Sơ đồ kết nối PID động Mạch điều khiển động đợc thực nh hình vẽ dới Hình 39: Sơ đồ mạch điều khiển hai động Phân tích: Nguyễn Phi Hùng 61 Lớp K46ĐC Trờng Đại Học Công Nghệ Khoa Điện Tử-Viễn Thông Nhìn sơ đồ ta thấy, hai chân cho phép nhận tÝn hiƯu tõ bus RS485 vµ trun tÝn hiƯu bus đợc nối thẳng đến chân 3(P0[3]) PSoC trình hoạt động chân PSoC phải đợc đặt lên mức cao phép vi mạch SN75176 hoạt động Điện áp từ chân chân 10 PID đợc dùng làm nguồn nuôi cho linh kiện mạch Hai chân truyền nhận PID đợc nối đến cổng P2[4] P2[2] PSoC 3.3 Các module phần mềm sử dụng để cài đặt cho giao thức Modbus 3.3.1 Các module cài đặt Master 3.3.2 Các module cài đặt Slave 3.3.2.1 Các hàm dùng chung Các module chơng trình đợc viết ngôn ngữ C Nó đợc viết tuân theo sơ đồ trạng thái Slave giới thiệu Sau chơng trình đợc nạp vào vi điều khiển PSoC Các chơng trình có nhiệm vụ nhận lệnh từ Master, phân tích yêu cầu trả lời Master Nội dung thông điệp mà Slave gửi cho Master phụ thuộc vào yêu cầu mà Master gửi cho Khi hệ thống hoạt động chơng trình quét trạng thái chân nhận PSoC xem có lệnh đến từ Master hay không Nếu có lệnh điều khiển từ Master công việc kiểm tra xem có phải yêu cầu gửi cho hay không, để thực công việc so sánh địa Slave byte địa khung mà nhận đợc so sánh với địa mà chơng trình đặt mặc định cho Tiếp đến trình kiểm tra lỗi Nếu có lỗi gửi thông báo quay trở lại cho Master thủ tục xuất ngoại lệ, mà mã hàm thủ tục 0x80 cộng với mã hàm tơng ứng mà Master gửi cho Nếu lỗi kiểm tra byte thứ khung liệu nhận đợc xem yêu cầu Master Sau thực yêu cầu gửi thông điệp response trở lại cho Master Trong chơng trình cài đặt Master Slave sử dụng mode truyền mode RTU Đi đôi với mode truyền RTU nh nói phơng pháp kiểm tra lỗi đợc sử dụng phơng thức CRC phần đa sơ đồ thuật toán phơng pháp Dới chơng trình để thực việc phát mã CRC viết ngôn ngữ C ////chơng trình phát mã CRC Nguyễn Phi Hùng 62 Lớp K46ĐC Trờng Đại Học Công Nghệ Khoa Điện Tử-Viễn Thông void mb_crc (char* DataBuf, char NumberChar) { unsigned int flag, temp1, temp2; crc=0xFFFF; for (i=0; i= 1; if (flag) crc = crc ^ 0xA001;//CRC-16:"1010 0000 0000 0001" } } temp1 = (crc >> 8) & 0x00ff; temp2 = (crc