... Người báo cáo: Ngô Hải Bắc Tài liệu: TUT01.03 Ngày: 10/01/06 Trang: 1/78 Tutorial no 01.02 Gửi đến: Đoàn Hiệp, Doãn Minh Đăng, Huỳnh Châu Thuận picvietnam@googlegroups.comNội dung: Lập trìnhgiaotiếpmáytính qua cổng RS232 MICROSOFT WORD Tóm tắt: Vấn giaotiếp giữa PC và vi điều khiển rất quan trong trong các ứng dụng điều khiển, đo lường, ... trong thực tế. Do đó tôi xin giới thiệu cho các bạn viết chương trình trên PC dùng MSComm. Tôi xin đưa ra một số vấn đề như sau: ‐ Giới thiệu chuẩn giaotiếp RS232 và điều khiển Active X Microsoft Communication 6.0( MSComm): cách tính chất và cách thiết lập tham số tối ưu cho điều khiển. ‐ Lậptrình ứng dụng giaotiếp trên cơ sở sử dụng phần mềm Visual C++ trong bộ công cụ Visual ‐ Studio 6.0 của Microsft: + Thiết kế giao diện chương trình. + Viết mã cho chương trình. 1. ... trong thực tế. Do đó tôi xin giới thiệu cho các bạn viết chương trình trên PC dùng MSComm. Tôi xin đưa ra một số vấn đề như sau: ‐ Giới thiệu chuẩn giaotiếp RS232 và điều khiển Active X Microsoft Communication 6.0( MSComm): cách tính chất và cách thiết lập tham số tối ưu cho điều khiển. ‐ Lậptrình ứng dụng giaotiếp trên cơ sở sử dụng phần mềm Visual C++ trong bộ công cụ Visual ‐ Studio 6.0 của Microsft: + Thiết kế giao diện chương trình. + Viết mã cho chương trình. 1. Điều khiển MSComm 1.1. Chuẩn giaotiếp RS232 RS232 là một chuẩn giaotiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất là với 2 thiết bị, chiều dài kết nối lớn nhất cho phép để đảm bảo dữ liệu là 50 – 100 feet ( 12.7 đến 25.4 m), tốc độ 20kBít/s đôi khi là tốc độ 115 k Bít/s với một số thiết bị đặc biệt. Để biết được các tham số của chuẩn giaotiếp RS232 trong hệ điều hành của bạn như thế nảo thì bạn kích phải chuột vào biểu tượng My Computer , chọn Properties, chọn Tab HardWare chọn Device Manager sẽ có một tree hiện ra. Bạn chọn Port( Com & LPT), kích chuột phải vào Communication Port( COM1). Chuyển sang tab Port Setting sẽ thấy được các tham số mà chúng ta cần thiết lập bao gồm tần số bus, Data Bits, Parity Bits, Stop Bits, Handshaking,...
... Cách thiết lập tối ưu cho ứng dụng Để cho ứng dụng có thể đọc ngay dữ liệu khi bắt đầu có trong bộ đệm nhận thì các bạn nên đặt thuộc tính RthresHold = 1. Ngoài ra các bạn cần quan tâm đến các tham số: CommPort, Settings, Rthreshold, SthresHold,PortOpen, InputLen, InputBuffer, OutputBuffer, InBufferSize, InputMode, OutBufferSize. 2. Lậptrình 2.1. Mục đích yêu cầu Chương trình này rất là đơn giản. Chúng ta sẽ tạo ra một chương trình có giao diện như sau: Hình 2.1: Giao diện chương trình Chương trình có chức năng sau: ‐ Nhập kí tự hoặc xâu kí tự vào EditBox Transfer, điều chỉnh tham số giaotiếp trên các ComboBox. Nhấn nút Send để gửi dữ liệu ra cổng COM. ‐ Đồng thời với nó nếu có dữ liệu truyền vê cổng Com thì dữ liệu sẽ được hiển thị lên EditBox Receive. Khi bạn nhấn vào Clear thì sẽ xoá dữ liệu hiển thị trên EditBox này. Chú ý: ... Người báo cáo: Ngô Hải Bắc Tài liệu: TUT01.03 Ngày: 10/01/06 Trang: 7/78 + InBufferCout: trả lại số kí tự đang có trong bộ đệm nhận Bạn có thể xoá bộ đệm nhận bằng cách đặt thuộc tính này =0 . Không nhầm với thuộc tính InBufferSize là tổng kích thước của bộ đệm nhận. + Input: nhận và xoá dữ liệu trong bộ đệm nhận. Nếu InputMode là comInputModeText thì giá trị trả về sẽ là một xâu tức có kiểu String , dữ liệu dạng text trong một biến kiểu Variant. Nếu InputMode = comInputModeBinary thì thuộc tính này sẽ trả lại dữ liệu dạng nhị phân dưới dạng một mảng kiểu byte trong một biến Variant. + OutBufferCount: trả lại số kí tự trong bộ đệm truyền. + Output: ghi dữ liệu vào bộ đệm truyền. có thể truyền kiểu text hoặc kiểu nhị phân. Nếu truyền bằng kiểu text thì cho một biến Variant = kiểu String, nếu truyền kiểu nhị phân thì cho cho Output= variant = một mảng kiểu Byte. Bắt tay( handshaking): + Break : thiết lập hoặc xoá tín hiệu. object.Break [ = value] value = true hoặc false. Khi set value= true thì thông số Break này sẽ gửi một tín hiệu break. Tín hiệu break trì hoàn việc truyền dữ liệu và đưa đường truyền vào trạng thái break tới khi mà value = false. + CDHolding: quết định xem sự truyền này đến đâu bằng cách truy vấn đường CD( Carrier Detect). Carrier Detect là tín hiệu gửi từ modem tới máytính kết nối với nó thống báo rằng nó đang online. Nếu giá trị = true thì nó đường CD đang ở mức cao, nếu = false thì đường dây này đang ở mức thấp. Tính chất này không có trong lúc thiết kế chỉ có trong khi chạy chương trình. Carrier Detect được biết như là Receive Line Signal Detect (RLSD). + CTSHolding: quết định khi nào bạn gửi dữ liệu bằng cách truy vấn trạng thái đường Clear To Send (CTS). Thông thường tín hiệu CTS được gửi từ modem tới máytính kết nối với nó để báo rằng đang quá trình truyền dữ liệu. Thuộc tính Readonly chỉ xuất hiện khi chạy chương trình. Đường Clear To Send dùng trong RTS/CTS (Request To Send/Clear To Send) bắt tay phần cứng. CTSHolding cho bạn một cách để tự tay dò đường Clear To Send nếu bạn cần biết trạng thái của nó. + DSRHolding: biết trạng thái của đường Data Set Ready (DSR). Tín hiệu Data Set Ready truyền từ modem tới máytính nối với nó để thông báo rằng modem đã sẵn sàng hoạt động. Tính chất này dùng khi viết Data Set Ready/Data Terminal Ready handshaking routine cho máy Data Terminal Equipment (DTE)‐ máy trang bị đầu cuối dữ liệu. + DTREnable: tính chất này quyết định khi nào cho phép đường Data Terminal Ready (DTR) trong truyền thông. Tín hiệu DTR gửi từ máytính tới modem đẻ báo rằng máytính sẵn sàng là nơi nhận dữ liệu. Khi DTREnable = true thì đường Data Terminal Ready set lên cao khi cổng mở, và thấp khi cổng đóng. Nếu DTREnable = false thì đường đó luôn mức thấp. Trong phần lớn trường hợp set đường Data Terminal Ready thành thấp để hang up telephone. ... Điều khiển MSComm trong Visual C++ Trên đây là các tham số của điều khiển MSComm trong VB. Trong Visual C++ , mỗi một điều khiển được định nghĩa trong một lớp riêng. Và MSComm cũng không phải là ngoại lệ. Với các tham số ở trên các bạn hoàn toàn có thể áp dụng rất là tốt cho lậptrình với VC++ bởi lẽ các tham số này bạn có thể lấy giá trị hoặc thiết lập tham số cho chúng tương ứng bằng các hàm thành viên cửa lớp như Get_thuộctính hoặc Set_thuộctính. Ví dụ, bạn muốn thiết lập dùng cổng COM1 chẳng hạn thì dùng thuộc tính CommPort ở trên và chỉ thêm tiền tố Set_ nếu muốn thiết lập và Get_ nếu muốn lấy giá trị này. Sau đây là lớp MSComm là một lớp kế thừa từ lớp cở sở CWnd, các bạn có thể tham khảo. Các bạn chú ý về các kiều dữ liệu cửa các tham số và giá trị trả về của các hàm. Việc ...
... Cáchthiết lập tốiưuchoứngdụngĐểchoứngdụngcóthểđọcngaydữliệukhibắtđầucótrongbộđệmnhậnthìcácbạnnênđặtthuộc tính RthresHold=1.Ngoàiracácbạncầnquantâmđếncácthamsố:CommPort,Settings,Rthreshold,SthresHold,PortOpen,InputLen,InputBuffer,OutputBuffer,InBufferSize,InputMode,OutBufferSize.2. Lậptrình 2.1. MụcđíchyêucầuChương trình nàyrấtlàđơngiản.Chúngtasẽtạoramộtchương trình có giao diệnnhưsau:Hình2.1: Giao diệnchương trình Chương trình cóchứcnăngsau:‐NhậpkítựhoặcxâukítựvàoEditBoxTransfer,điềuchỉnhthamsố giaotiếp trêncácComboBox.NhấnnútSendđểgửidữliệuracổngCOM.‐ĐồngthờivớinónếucódữliệutruyềnvêcổngComthìdữliệusẽđượchiểnthịlênEditBoxReceive.KhibạnnhấnvàoClearthìsẽxoádữliệuhiểnthịtrênEditBoxnày.Chúý: ... Ngườibáocáo:NgôHảiBắcTàiliệu:TUT01.03Ngày:10/01/06Trang:1/78Tutorialno01.02Gửiđến:ĐoànHiệp,DoãnMinhĐăng,HuỳnhChâuThuậnpicvietnam@googlegroups.comNộidung: Lập trìnhgiaotiếpmáytính quacổngRS232 MICROSOFTWORDTómtắt:Vấn giaotiếp giữaPCvàviđiềukhiểnrấtquantrongtrongcácứngdụngđiềukhiển,đol ... Ngườibáocáo:NgôHảiBắcTàiliệu:TUT01.03Ngày:10/01/06Trang:17/78Hình2.7:chọnnhưmặcđịnh,nhấnNextluônHình2.8:Kíchfinishđểkếtthúcviệctạodựán Giao diệncủaứngdụngbanđầunhưsau: ĐỀ TÀI Lập trìnhgiaotiếpmáytính qua cổng RS232 Ngườibáocáo:NgôHảiBắcTàiliệu:TUT01.03Ngày:10/01/06Trang:18/78Hình2.9: Giao diệnbanđầu2.2.2....
... Cáchthiết lập tốiưuchoứngdụngĐểchoứngdụngcóthểđọcngaydữliệukhibắtđầucótrongbộđệmnhậnthìcácbạnnênđặtthuộc tính RthresHold=1.Ngoàiracácbạncầnquantâmđếncácthamsố:CommPort,Settings,Rthreshold,SthresHold,PortOpen,InputLen,InputBuffer,OutputBuffer,InBufferSize,InputMode,OutBufferSize.2. Lậptrình 2.1. MụcđíchyêucầuChương trình nàyrấtlàđơngiản.Chúngtasẽtạoramộtchương trình có giao diệnnhưsau:Hình2.1: Giao diệnchương trình Chương trình cóchứcnăngsau:‐NhậpkítựhoặcxâukítựvàoEditBoxTransfer,điềuchỉnhthamsố giaotiếp trêncácComboBox.NhấnnútSendđểgửidữliệuracổngCOM.‐ĐồngthờivớinónếucódữliệutruyềnvêcổngComthìdữliệusẽđượchiểnthịlênEditBoxReceive.KhibạnnhấnvàoClearthìsẽxoádữliệuhiểnthịtrênEditBoxnày.Chúý: ... Cácthuộc tính củaMSCommMSCommlàmộtđiềukhiểnActiveXdùngtrongtruyềnthôngnối tiếp. Các tính chấtcủađiềukhiểnnàyđượcdùngđểthiết lậpgiaotiếp vớicácthiếtbịngoạiviquacổngRS232.DođótôixingiớithiệuvớicácbạnđiềukhiểnnàytrongVisualBasicvìcáchgọithuộc tính đơngiảncủa VB. Từđósẽlấylàmcơsởđể lậptrình trênVisualC++.1.2.1. ... Cácthuộc tính củaMSCommMSCommlàmộtđiềukhiểnActiveXdùngtrongtruyềnthôngnối tiếp. Các tính chấtcủađiềukhiểnnàyđượcdùngđểthiết lậpgiaotiếp vớicácthiếtbịngoạiviquacổngRS232.DođótôixingiớithiệuvớicácbạnđiềukhiểnnàytrongVisualBasicvìcáchgọithuộc tính đơngiảncủa VB. Từđósẽlấylàmcơsởđể lậptrình trênVisualC++.1.2.1. ĐiềukhiểnMSCommtrongVisualBasicTấtcảcác tính chấtnàybạncóthểtìmtạithưviệnMSDNJuly2001theođườngdẫnnhưsauởtabcontents:MSDNLibrary‐July2001/VisualToolsandLanguages/VisualStudio6.0Documentation/VisualBasicDocumentation/Reference/ControlReference/ActiveXControl/MSCommControlCác tính chấtcủaMSCommđượcsắpxếptheochứcnăng:Thiết lập thamsốchocổng:+CommID:trảlạihandlesđồngnhấttớithiếtbịtruyềnthông,cókiểuLong. Tính chấtnàykhôngcólúcthiếtkếmàchỉcókhithihành,thuộc tính nàylàReadOnly.+CommPort:dạngobject.CommPort=value.ValuelàchỉsốcủacổngComcógiátrịtừ1‐>16vàmặcđịnhcógiátrị=1.Cácbạncầnphảithiết lập thôngsốnàytrướckhimởcổng.Sẽcólỗierror68(Deviceunavailable)nếunhưkhôngmởđượccổngnày.+InBuferSize:thiết lập hoặctrảlạikíchthướccủabộđệmnhận, tính =byte.Mặcđịnhlà1024byte.Cácbạnkhôngđượcnhầmlẫnvớiđặc tính InBufferCountlàsốbyteđangchờtrongbộđệmnhận.+InputLen:object.InputLen[=value]thiết lập hoặctrảlạisốbytemỗilầnthuộc tính Inputđọctrongbộđệmnhận.MặcđịnhgiátrịValue=0tứclàthuộc tính Inputsẽđọchếtnộidungcủabộđệmnhậnkhithuộc tính nàyđượcgọi.Nếusốkítựtrongbộđệmnhậnkhông=InputLenthìthuộc tính Inputsẽtrảlạikítựrỗng“”.VíthếbạncầnphảichọncáchkiểmtraInBufferCountđểchắcchắnsốkítựyêucầuđãcóđủtrướckhidùnglệnh.Input. Tính chấtnàyrấtlàcóíchkhiđọcdữliệumột máy màdữliệurađượcđịnhdạngbằngcáckhốicókíchthướccốđịnh.+InputMode:object.InputMode[=value].Value=0hay=comInputModeTextdữliệunhậnđượcdạngvănbảnkiểukítựtheochuẩnANSI.Dữliệunhậnđượcsẽlàmộtsâu.Value=1hay=comInputModeBinarydùngnhậnmọikiểudữliệunhưkítựđiềukhiểnnhúng,kítựNULL,...
... 11KỸ THUẬT LẬP TRÌNHCHƯƠNG 9LẬP TRÌNHGIAOTIẾPMÁYTÍNH VTHIT B2Mc lc chng 9ã9.1. Giao tip qua cng RS232ã9.2. Giao tip qua cng song songã9.3. Giao tip qua cng ni tipã9.4. Giao tip qua ... được trình bày dưới đây:11 Giao tiếp qua cổng RS23212 Giao tiếp qua cổng RS23213 Giao tiếp qua cng RS23214 Giao tip qua cng RS23215 Giao tip qua cng RS232ãCỏc thiết bị dùng các cổng nối tiếp ... blinking with app. 1 sec frequency.949.2. Giaotiếp qua cổng song song95 GIAO TIẾP QUA CỔNG NỐI TIẾPCHƯƠNG 9969.3. Giaotiếp qua cổng nối tiếp 979.3. Giaotiếp qua cng ni tipãAbove is the standard...
... Ngườibáocáo:NgôHảiBắcTàiliệu:TUT01.03Ngày:10/01/06Trang:1/78Tutorialno01.02Gửiđến:ĐoànHiệp,DoãnMinhĐăng,HuỳnhChâuThuậnpicvietnam@googlegroups.comNộidung: Lập trìnhgiaotiếpmáytính quacổngRS232 MICROSOFTWORDTómtắt:Vấn giaotiếp giữaPCvàviđiềukhiểnrấtquantrongtrongcácứngdụngđiềukhiển,đol ... trongthựctế.Dođótôixingiớithiệuchocácbạnviếtchương trình trênPCdùngMSComm.Tôixinđưaramộtsốvấnđềnhưsau:‐Giớithiệuchuẩn giaotiếp RS232vàđiềukhiểnActiveXMicrosoftCommunication6.0(MSComm):cách tính chấtvàcáchthiết lập thamsốtốiưuchođiềukhiển.‐ Lậptrình ứngdụng giaotiếp trêncơsởsửdụngphầnmềmVisualC++trongbộcôngcụVisual‐Studio6.0củaMicrosft:+Thiếtkế giao diệnchương trình. +Viếtmãchochương trình. 1. ... Ngườibáocáo:NgôHảiBắcTàiliệu:TUT01.03Ngày:10/01/06Trang:5/78truyền.value=falsekítựtrốngsẽđượctruyền.KítựtrốngđượcđịnhnghíatheochuẩnASCIIlàkítự0–chr$(0).+OutBuferSize:giốngnhưInBuferSize,mặcđịnhlà512.+ParityReplace:thiết lập vàtrảlạikítựthaythếkítựkhôngđúngtronglỗigiốngnhau.+PortOpen:thiết lập vàtrảlại tính trạngcủacổng(đónghoặcmở).object.PortOpen[=value].value=truecổngmở.value=falsecổngđóngvàxóatoànbộdữliệutrongbộđệmnhậnvàtruyền.Cầnphảithiết lập thuộc tính CommPortđúngvớitêncủacổngtrướckhimởcổng giao tiếp. Thêmvàođó,cổng giaotiếp củathiếtbịcủabạnphảihỗtrợgiátrịtrongthuộc tính Settingthìthiếtbịc...
... 4.3.3 Giao diện VB điều khiển trên máytính 79 4.4 Giaotiếpmáytính điều khiển 8 LED đơn bằng VB 79 4.4.1 Mô phỏng Proteus 79 4.4.2 Viết chương trình Keil C cho VĐK 79 4.4.3 Giao diện VB điều ... Giaotiếpmáytính điều khiển động cơ bước bằng C# 69 4.1.1 Mô phỏng Proteus 69 4.1.2 Viết chương trình Keil C cho VĐK 69 4.1.3 Giao diện điều khiển từ máytính 71 4.2 Giaotiếpmáytính ... GIAOTIẾP VI ĐIỀU KHIỂN 34 2.1 Thiết kế giao diện 34 2.2 Viết chương trình thực thi 44 CHƯƠNG 3: SỬ DỤNG VISUAL C# GIAOTIẾP VĐK 48 CHƯƠNG 4: CÁC VÍ DỤ GIAOTIẾPMÁYTÍNH VÀ VĐK 69 4.1 Giao...
... KHỐI CHƯƠNG TRÌNH PLCMAINKHỐI TRUYỀN 12BYTE DỮ LIỆU LÊN MÁY TÍNH: 6BYTE KHỐI LƯỢNG QUY ĐỔI, 3BYTE HIỂN THỊ SỐ THÙNG ĐÃ ĐONG, 1BYTE ON/OFF, 2BYTE ANALOGKHỐI NHẬN DỮ LIỆU TỪ MÁY TÍNH VÀ XỬ ... đến khi đủ khối lượng đã được đặt trước trên máytính , Số thùng của mỗi loại sau khi đóng gói xong, được PLC truyền lên và hiển thị trên máy tính. Sau khi đóng gói xong thì từng loại thùng ... đã được đặt trước trên máytính ta nhấn Start băng chuyền hoạt độngKhi băng chuyền bắt đầu đong sản phẩm ta có thể quan sát được trạng thái của băng chuyền trên máytính , đang đong loại...
... độc lập thông qua mạng thuê bao điện thoại. Ngày nay thông tin liên lạc phát triển cao, để có thể làm việc có hiệu quả thì tại các thuê bao công cộng ta có thể đặt một máytính cước, máy này ... cực sẽ xuất hiện. Khi đó hệ thống tính cước của tổng đài sẽ bắt đầu thực hiện việc tính cước đàm thoại cho thuê bao gọi. Ở các trạm công cộng có trang bị máytính cước, khi cơ quan bưu điện sẽ ... VỀ MÁY ĐIỆN THOẠI I. NGUYÊN LÝ THÔNG TIN ĐIỆN THOẠI: Thông tin điện thoại là quá trình truyền đưa tiếng nói từ nơi này đến nơi khác, bằng dòng điện qua máy điện thoại. Máy...