Thông báo

Collapse
No announcement yet.

làm thế nào để vẽ Đồ thị (X,Y), dữ liệu nhận từ cổng COM, ngôn ngữ Visual Baic 6.0

Collapse
This is a sticky topic.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Nguyên văn bởi mrq.auto Xem bài viết
    Mình muốn vẽ trục x là trục thời gian nhưng khi mà đồ thị được vẽ hết màn hình của teechart thì trục thời gian sẽ không dịch nữa (cho dù thời gian vẫn chạy), theo đó đồ thị sẽ không bị co lại mà khi tràn điểm màn hình vẽ đồ thị của teechart sẽ bị xóa đi và được vẽ lại bằng đồ thị của khoảng thời gian tiếp theo (ví dụ như mình vẽ 50 điểm ứng với một khoảng thời gian trên màn hình, khi tràn sẽ xóa đi và vẽ 50 điểm của khoảng thời gian tiếp theo) Ai có biết cái này trong teechart xử lí như thế nào ko? có thể giúp mình được chứ.
    Cái này mình cũng bí từ 2 tháng trước nhưng vẫn chưa có ai trả lời hết, mình mới mò ra được tí cũng chia sẻ cho những người đi sau về vấn đề này .
    .TRước tiên chọn properties >paging làm theo hình dưới sau
    Click image for larger version

Name:	3c53c67b877e0bc6c2a908a3f08cd5c5_39185603.alo.jpg
Views:	1
Size:	82.0 KB
ID:	1354530
    VÀ thêm đoạn code : Tchart1.page.current=Tchart1.page.count
    Click image for larger version

Name:	bad99197e4383143438cc39e616ef691_39185594.alo2.jpg
Views:	1
Size:	42.1 KB
ID:	1354531
    |

    Comment


    • Anh em thấy anh làm về cai đó giống cái của em đang làm thu thập dữ liệu và điều khiển nhiệt độ 3 lò nhiệt và vẽ đồ thị trên VB6 ..Mong các anh chỉ giáo ạ

      Comment


      • Nguyên văn bởi hoanglongu Xem bài viết
        Mình Tổng Hợp lại các Nội dung - để vẽ đồ thị Trong VB bằng Teechart - với dữ liệu từ Cổng COM --> để anh em dễ theo dõi hen.


        2 bước để vẽ đồ thị với Dữ liệu từ cổng COM với Teechart như sau:
        1> Khai báo một mảng để lưu dữ liệu cần vẽ : Dim MANG(1 to 50000) As Long
        Khai báo 1 biến đếm : Dim bien_dem As Long

        2> Mỗi khi có sự kiên MSComn được gọi:

        a. chúng ta sẽ lưu vào mảng ( Có một biến đếm để làm ĐẾM số lần Sự kiện MSComn được gọi ==> Làm chỉ số luu phần tử vào mạng trên ; lần đầu tiên, đặt : bien_dem =1)
        b. Khi lưu xong , ta sẽ gọi Teechart ,Add thêm 1 điểm lên đồ thị :
        Code mẫu:

        With TChart1.Series(0)
        .AddXY bien_dem,MANG(bien_dem),"",vbBlue
        End with


        3. Khi sự kiện OnComn kết thúc, ta tăng biến đếm lên 1 , rồi kết thúc SUB

        CÁC LINK : để DOWNLOAD
        (Các LINK DOWNLOAD vẫn còn GOOD - đã TEST kĩ )
        File ActiveX Control (teechart.OCX) :

        File Not Found - Filefactory.com

        Đây là 1 số ví dụ của Teechart mẫu (rất hay) đó:
        Teechart_EXAMPLES_HoangLongU.rar

        File help: FileFactory - Free file hosting

        File_FAQ: File Not Found - Filefactory.com

        Trang chủ Teechart : Charting Components by Steema, Chart for .NET, VCL, Delphi, ActiveX, Java, PHP, Mobile Chart for Android and Phone 7. Data Visualization Charts - Homepage

        POST lại FILE hướng dẫn sử dụng TEECHART (do mình Soạn ra) cho anh em ( Kèm theo bài viết này)

        Ngoài ra ,đồ thị trong TEECHART có Giao diện ĐỒ HỌA rất đẹp , hỗ trợ vẽ Tín hiệu dạng REALTIME (thời gian thực ) hay HISTORIAL (sự kiện) luôn

        CHúc mọi người zui cùng Teechart hen!
        a có bản TeeChart cho VC++ 10 thì hướng dẫn cho đàn em luôn nhé

        Comment


        • -Em mới dùng Visual studio nên không hiểu rõ lắm. Em đã thiết kế xong dao diện và giao tiếp rs 232 hiển thị lên texbox xong rồi. nhưng em muốn tách 3 gia trị từ vi điều khiên lên để được 3 đường biểu đồ mà loay hoay mãi vẫn chưa dc (cụ thể hơn là em chưa biết tách dữ liệu, và add giá trị lên biểu đồ). Bác nào viết cho em cái code phần này được ko ạ, em cũng dùng teechar. Cảm ơn các bác rất nhiều.

          -Và em có một thắc mắc nữa không làm sao em sử dụng hàm main() giống tron vi điều khiển được (hàm luôn được chạy mà không phải gọi) để em sử dùng while(true) em đọc code trên SerialPort.DataBits Property (System.IO.Ports) phai báo hàm main the mà cứ bị lỗi.

          Comment


          • Giao tiep VB6.0 qua cong RS232

            Mình mới tìm hiểu VB6.0 nên chưa biết nhiều lắm mong ACE giúp đỡ.Mình muốn làm một giao diện để kiểm soát nhiệt độ/độ ẩm của phòng kết nối với bộ chuyển đổi nhiệt độ/độ ẩm,mình có thể được tạo được giao diện nhưng chưa viết được code mong ACE hướng dẫn.Xin cảm ơn!
            Attached Files

            Comment


            • Hi mọi ngưởi, mình cũng đang làm đồ án đo nhiệt độ sau đó vẽ đồ thị lên máy tính .Mình tính sự dụng VB.Net mình chạy thử chương trình trên máy tính thì bị lỗi ở dòng Axteechar.seria(0){//...} có bạn nào gặp vấn đề như mình không ?? Nếu có thì cho mình ý kiến nha.

              Comment


              • xin chỉ giáo

                Nguyên văn bởi compvis Xem bài viết
                Để vẽ đồ thị từ cổng COM lên ở thời gian thực (đọc lên và vẽ luôn) thì cần chú ý sau đây:

                - Sử dụng điều khiển MSCOMM (hợp lý và ổn định nhất).
                - Cần một timer định thời gian cập nhật dữ liệu lên một biến ở chương trình máy tính (hoặc có thể sử dụng hàm đáp ứng OnComm để bắt sự kiện có dữ liệu trên bộ đệm vào).
                - Sử dụng một trong các activex vẽ đồ thị của Iocomp, ComponentOne, Majic Instrumentation.... (Chú ý tính AutoScale của các đồ thị này là TRUE, để đảm bảo đồ thị sẽ tự động shift dữ liệu khi dữ liệu đầy thang hiển thị)

                Dưới đây là một hình ảnh vẽ đồ thị dữ liệu nhận được qua cổng COM từ bộ điều khiển nhiệt E5CK (Omron)

                Chú ý: giữ liệu trên đồ thị là giả định (chương trình đang trong chế độ Debug, không phải Release)
                Xin hỏi bác cái đồ thị bác trong ảnh này bác xây dựng bằng Activex nào thế, cho em xin code của nó được không.xin đa tạ
                Attached Files

                Comment


                • Bạn dùng thêm một activeX vẽ đồ thị là được, oscillocope thì phải, tìm trên mạng chắc có đấy, chúc thành công!

                  Comment


                  • Nguyên văn bởi hoanglongu Xem bài viết
                    Hi, không ngờ Các bạn thật là TẬN Tình, quan tâm đến Thread này.Trước hết ,mình xin chân thành cảm ơn các bạn.
                    Sau 4 ngày Dùi mài KINH SỬ với Teechart (dùng trong VB) ,mình đã Thành CÔng. Xin đặc biệt cảm ơn bạn ATYLA đã gợi ý sử dụng MANG (rất hữu ích) . Mình xin trình bày 2 bước để vẽ đồ thị với Dữ liệu từ cổng COM với Teechart như sau:
                    1> Khai báo một mảng để lưu dữ liệu cần vẽ : Dim MANG(1 to 50000) As Long
                    Khai báo 1 biến đếm : Dim bien_dem As Long
                    2> Mỗi khi có sự kiên MSComn được gọi:
                    a. chúng ta sẽ lưu vào mảng ( Có một biến đếm để làm ĐẾM số lần Sự kiện MSComn được gọi ==> Làm chỉ số luu phần tử vào mạng trên ; lần đầu tiên, đặt : bien_dem =1)
                    b. Khi lưu xong , ta sẽ gọi Teechart ,Add thêm 1 điểm lên đồ thị :
                    Code mẫu:
                    With TChart1.Series(0)
                    .AddXY bien_dem,MANG(bien_dem),"",vbBlue
                    End with
                    3. Khi sự kiện OnComn kết thúc, ta tang biến đếm lên 1 , rồi kết thúc SUB

                    Theo khi hứa với các bạn ,mình sẽ POST vài Sample CODE + Form mẫu lên ,bây giờ mình xin POST các File HELP +Tuturial +Guider rất hay của Teechart. các bạn hãy vào phần HELP => Getting Started => Để xem cách thiêt lập FORM cho teechart và Khai báo như thế nào.
                    File help: FileFactory - Free file hosting ( sau đó Kéo thanh trình Duyệt : chọn FREE DOWNLOAD , sau đó nhập MÃ vào là DOWN thui ; cac bạn nên dùng Internet Downloader 5.1X để tăng tốc Down cho nhanh)

                    File ActiveX Control (teechart.OCX) : File Not Found - Filefactory.com

                    Còn về Sample project, cuối tuần mình sẽ POST cho mấy bạn nghen
                    Anh up sang link # được k? Nếu k phiền có thể gửi vào mail cho em: nguyenvanviet1102@gmail.com. Xin cảm ơn!
                    PhieuDu

                    Comment


                    • Tổng Hợp lại 3 cách vẽ đồ thị đã được trình bày.

                      Mình tổng hợp lại ba cách vẽ đồ thị đã được trình bày trong Thread này:

                      1. Vẽ bằng Visual Basic + TEECHART (3D): ==> http://www.dientuvietnam.net/forums/...88/index5.html

                      2. Vẽ bằng Visual Basic + NTGRAPH (2D): ==> http://www.dientuvietnam.net/forums/...8/index12.html

                      3. Vẽ bằng lập trình Visual Basic thuần túy (2D): ==> http://www.dientuvietnam.net/forums/...88/index9.html

                      Các bạn đọc kỹ nội dung trong các Link trên, có chứa đầy đủ các bước hướng dẫn chi tiết.

                      Chúc thành công.
                      My department's Website: www4.hcmut.edu.vn/~thietbidien/trangchu

                      Motorola-FreeScale's MCU 68HC11 & HCS12X Supporter

                      Comment


                      • mấy a cho e hỏi sao e add teechart vào vb 6.0 thì nó hiện ra bảng như hình...ai chỉ giùm e vs ạ

                        Comment


                        • Dạ chào anh! Em làm đồ án điều khiển nhiệt độ và vẽ biểu đồ nhiệt độ lên VB, em sử dụng teechart như anh hướng dẫn nhưng em mới sử dụng VB lần đầu nên em chưa rành gì về VB hết. Cả mấy tuần ngồi mày mò học với xem code mà em chẳng làm được gì hết anh ơi!
                          Em xem cái ví dụ trong mấy cái file anh gửi và em đã làm. Code như thế này anh xem giúp em thử nó có được không, em gửi dữ liệu từ cổng com ảo nó nhận và vẽ lên sơ đồ và nó giữ nguyên giá trị đó, sau đó em nhập giá thị khác thì nó cũng vẽ. Nhưng cái quan trọng là em không biết cách cho nó chạy theo kiểu thời gian thực, và cũng không biết chắc là khi vdk truyền tín hiệu lên thì nó sẽ vẽ đúng như vậy hay không nữa. anh làm ơn giúp dùm em với. Còn nữa tháng nữa là em bảo vệ đồ án rồi ạ!
                          Code:
                          Dim so1 As String
                          Dim so As String
                          Dim a As String
                          Dim NewValue As Double
                          Private Sub AnimateSeries(Index As Integer)


                          With TChart1.Series(Index)
                          ' if there are more than 50 points in the Series,
                          ' delete the first point
                          If .Count > 500 Then .Delete (0)

                          ' add a new random point to the end of the Series

                          .AddXY .XValues.Last + 1, NewValue, "", clTeeColor

                          End With

                          End Sub

                          Private Sub Check1_Click()
                          ' start / stop animation timer...
                          Timer1.Enabled = Check1.Value
                          End Sub

                          Private Sub Check2_Click()
                          ' show chart in 2D or 3D ...
                          TChart1.Aspect.View3D = Check2.Value
                          End Sub

                          Private Sub Command1_Click()
                          End
                          End Sub

                          Private Sub Form_Load()
                          MSComm1.CommPort = 4
                          MSComm1.Settings = "9600,n,8,1"
                          MSComm1.PortOpen = True
                          Me.MSComm1.RThreshold = 1
                          ' set Bottom axis to show one label at each 5 units...
                          TChart1.Axis.Bottom.Increment = 5
                          TChart1.Axis.Left.SetMinMax 0, 5000
                          ' add one sample value to each Series
                          TChart1.Series(0).Add 1000, "", clTeeColor


                          ' turn off gradient fill for 16 color video modes...
                          TChart1.Panel.Gradient.Visible = TChart1.Canvas.IsScreenHighColor
                          End Sub

                          Private Sub MSComm1_OnComm()
                          If (MSComm1.CommEvent = comEvReceive) Then
                          a = MSComm1.Input
                          Text1.Text = a
                          NewValue = a
                          End If
                          End Sub

                          Private Sub Timer1_Timer()
                          ' animate each chart Series at every timer...
                          AnimateSeries (0)

                          End Sub

                          Comment


                          • Hiện tại mình đang làm đồ án điều khiển nhiệt độ lò gia nhiệt,mình muốn vẽ đồ thị nhiệt độ theo thời gian của lò nhiệt nhưng chưa biết cách làm.Mong các bác tận tình giúp đỡ.

                            Comment


                            • aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

                              Comment


                              • anh còn file vb bài điều khiển động cơ bước không anh hoanglongu gửi em cái e làm mãi chưa được. gửi em tham khảo với anh mail em là: sydat.dtd@gmail.com

                                Comment

                                Về tác giả

                                Collapse

                                hoanglongu - Received the Bachelor (honors) and Master (by research) of Engineering in Automatic Control at Faculty of Electrical-Electronics Engineering, Ho Chi Minh City University of Technology (HCMUT), Vietnam, in 2009 and 2011, respectively. - Majors: Automatic Control, Solar/Wind Energy systems, Electrical Machines, Two-wheeled Self-Balancing Robot, Microcontrollers. Tìm hiểu thêm về hoanglongu

                                Bài viết mới nhất

                                Collapse

                                Đang tải...
                                X