Thông báo

Collapse
No announcement yet.

Giao tiếp với Agilent 34401A qua RS232

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Giao tiếp với Agilent 34401A qua RS232

    Mình làm việc với Agilent 34401A .Sử dụng C# viết phần mềm giao tiếp.Khi giao tiếp qua cổng GPIB thì không có vấn đề gì xảy ra.Nhưng khi sử dụng cổng RS232 thì các lệch mà có query lại đều báo lỗi.còn lệch không có quyre thì ko sao hết(ví dụ lệnh *RST *TST? thì không vấn đề gì còn *idn? là có lỗi liền) bạn nào làm về vấn đề này có thể giúp mình được không vậy.

  • #2
    ah quên code của mình nè
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;

    namespace testCom
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    // serialPort1.WriteLine("*idn?" + (char)13);
    serialPort1.WriteLine("" + textBox1.Text + ""+(char)13);
    //serialPort1.WriteLine("MEAS:RES? 1MOHM, 0.001OHM" + (char)13);

    //string data = "";
    //byte num = (byte)serialPort1.BytesToRead;
    //for (int i = 0; i < num; i++)
    //{
    // data = data + (char)serialPort1.ReadByte();
    //}



    //textBox2.Text = data;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    serialPort1.Open();
    }

    private void button2_Click(object sender, EventArgs e)
    {
    serialPort1.DiscardInBuffer();
    serialPort1.DiscardOutBuffer();
    }
    }
    }

    Comment


    • #3
      Bạn không nói rõ là lỗi như thế nào?

      Thông thường nên gởi cuối chuỗi các ký tự CrLf (0x0D0x0A) để báo hiệu kết thúc chuỗi.
      More friends more foods

      Comment


      • #4
        Trên Agilent 34401 xuất hiện err .Giả sử khi mình gửi lệnh *idn? để lấy thông tin về phiên bản nhưng cũng báo err

        Comment


        • #5
          Nguyên văn bởi tuaki2311 Xem bài viết
          Trên Agilent 34401 xuất hiện err .Giả sử khi mình gửi lệnh *idn? để lấy thông tin về phiên bản nhưng cũng báo err
          bác coi thử link dưới coi.


          http://www.home.agilent.com/agilent/...S&lc=eng&no=25


          Ở khoảng giữa có exe file

          VISA COM and IVI-COM Driver: 34401 RS-232

          Comment


          • #6
            Mình cũng coi rồi.nhưng mà ở đó dùng IVI-COM Driver nên cũng không tiện lắm.vì bản thân C# cũng có serial com sài được rồi mà.

            Comment


            • #7
              Trong labview có cái driver của máy này đấy. Bạn tải về dùng thử xem.
              AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
              Xem thêm tại Online Store ---> Click here
              Mob: 0982.083.106

              Comment


              • #8
                Dùng Hyper Terminal trong Windows kết nối với máy Agilent.
                Thử gởi chuỗi *RST xem máy có đáp ứng không?
                Thử gởi chuỗi *IDN? xem máy có trả kết quả về có đúng không?

                Nhớ thiết lập tốc độ giao tiếp và các nghi thức giao tiếp phù hợp.
                More friends more foods

                Comment


                • #9
                  Nguyên văn bởi kimhuynguyen Xem bài viết
                  Dùng Hyper Terminal trong Windows kết nối với máy Agilent.
                  Thử gởi chuỗi *RST xem máy có đáp ứng không?
                  Thử gởi chuỗi *IDN? xem máy có trả kết quả về có đúng không?

                  Nhớ thiết lập tốc độ giao tiếp và các nghi thức giao tiếp phù hợp.
                  Cảm ơn bạn nhé.Nhưng mình cũng dùng Hyper Terminal rồi kiểm tra các lệnh đều chạy bình thường cả.Còn khi viết bằng C# thì chạy các lệnh như là *RST *CLS CONFIG thì chạy bình thường.Còn các lệnh *IDN? MEAS nói chung là các lệnh cần trả lại thông tin thì báo err trên Agilent.Mã lỗi là -410.
                  Mình ghi là chuỗi lệnh mà mình truyền vào chắc phải thêm vào cái gì đó.Nhưng đọc hoài ko có chỗ nào viết cả.bế tắc quá đi

                  Comment


                  • #10
                    Nguyên văn bởi VNarmy Xem bài viết
                    Trong labview có cái driver của máy này đấy. Bạn tải về dùng thử xem.
                    Mình tải rùi nhưng chương trình mẫu chẳng chạy gì cả.Trong khi dùng Hyper Terminal thì chạy bình thường

                    Comment


                    • #11
                      Nguyên văn bởi tuaki2311 Xem bài viết
                      Cảm ơn bạn nhé.Nhưng mình cũng dùng Hyper Terminal rồi kiểm tra các lệnh đều chạy bình thường cả.Còn khi viết bằng C# thì chạy các lệnh như là *RST *CLS CONFIG thì chạy bình thường.Còn các lệnh *IDN? MEAS nói chung là các lệnh cần trả lại thông tin thì báo err trên Agilent.Mã lỗi là -410.
                      Mình ghi là chuỗi lệnh mà mình truyền vào chắc phải thêm vào cái gì đó.Nhưng đọc hoài ko có chỗ nào viết cả.bế tắc quá đi
                      Như đã nói ở trên, chuỗi bạn cần truyền có lẽ phải thêm vào 2 ký tự 0x13 và 0x10 vào cuối chuỗi (Hyper Terminal sẽ tự động thêm vào khi bạn gõ "Enter")

                      Chương trình của bạn chỉ thêm 0x10, có lẽ chưa đủ ?
                      More friends more foods

                      Comment


                      • #12
                        Nguyên văn bởi kimhuynguyen Xem bài viết
                        Như đã nói ở trên, chuỗi bạn cần truyền có lẽ phải thêm vào 2 ký tự 0x13 và 0x10 vào cuối chuỗi (Hyper Terminal sẽ tự động thêm vào khi bạn gõ "Enter")

                        Chương trình của bạn chỉ thêm 0x10, có lẽ chưa đủ ?
                        Thêm cả 2 rùi mà vẫn không được ah.chắc điên thôi

                        Comment


                        • #13
                          Các lệnh gởi tới Agilent có phân biệt chữ hoa và thường không?
                          Thử kiểm tra lại tài liệu xem!
                          More friends more foods

                          Comment


                          • #14
                            Không phân biệt gì hết cả

                            Comment


                            • #15
                              Mình đọc 1 đoạn code viết trong vb có dùng chr$(10) .viết kiểu đó khác chr(10) như nào vậy.Ah còn chr$(10) trong C# viết thế nào nhỉ

                              Comment

                              Về tác giả

                              Collapse

                              tuaki2311 Tìm hiểu thêm về tuaki2311

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

                              Collapse

                              Đang tải...
                              X