Lưu prn file từ thiết bị kết nối với máy tính qua cổng serial

Chào mọi người, em đang có 1 thiết bị đo lực ALGOL IT 20, hiện tại em đã kết nối thành công thiết bị với máy tính qua cổng USB to serial bằng cách sử dụng IO.Ports và class SerialPort. Khi ấn nút print trên thiết bị thì sẽ in ra máy in được kết nối với thiết bị. Theo như em biết thì khi ấn in ở word hay excel… thì máy tính sẽ gửi file .prn đến máy in. Em muốn hỏi cách để lấy file .prn khi ấn nút print từ thiết bị và lưu vào máy tính. Em cảm ơn!

1 Like

Hello bạn.
Mình cũng đang tìm hiểu cách lấy dữ liệu từ ALGOL IT20. Làm cách nào bạn kết nối được với máy tính vậy? Chỉ chi tiết giúp mình với. Vì mình gà mờ khoảng này lắm nên bạn có thể hướng dẫn kỹ chút được không? Nếu có tìm hiểu được gì khác thì mình sẽ chia sè cho bạn qua web này.
Mong nhận phản hồi sớm.
Thanks !

Mình cũng mới lấy đc dữ liệu rồi, lấy theo cách thông thường như mấy bài viết trên mạng thì còn thiếu ko lấy được. Mình tìm trong quyển hướng dẫn sử dụng của thiết bị đó có 1 danh sách lệnh vd 01REPK, 01REPT … là lấy dữ liệu ở chế độ peak và track. Nếu b có quyển hướng dẫn đó thì nghiên cứu thử. Còn gửi lệnh thì giống mấy bài trên mạng là kết nối, writeline, readexist… Chúc bạn may mắn!

2 Likes

mình kết nối với máy tính bằng dây USB-serial conversion và phải cài đặt driver pl2303, còn code thì mình refer từ bài này: http://arduino.vn/bai-viet/908-c-c-sharp-nhan-du-lieu-tu-arduino

2 Likes

Dear Vũ Nguyễn
Mình gửi mail nhiều mà không thấy bạn phản hồi nên lên đây hỏi lại.
Bạn có hình chi tiết cách nối dây và giao tiếp giữa IT-20 vs PC không?
Mình kết nối qua cổng USB và nhận được COM rồi nhưng còn truyền dữ liệu đi thì làm thế nào nữa bạn?
Mình có xem các lệnh trong cuốn hướng dẫn nhưng cài đặt thế nào để nó truyền dữ liệu cho PC thì không hiểu lắm.
Bạn chỉ rõ giúp mình chút nha.
Thanks !

Mình có tham khảo trên web thấy có cái đường link này liên quan tới máy IT-20 nè.
http://www.jisc-jp.com/product/torque/itseries.html

dây mình dùng để kết nối tb với pc hình như là dây có sẵn đi theo máy, nó gồm 2 dây cắm lại với nhau, 1 dây chuyển USB to COM và 1 dây là COM to (cắm vào bên trái máy IT 20 chỗ I/F mình ko biết gọi cổng đó là gì). Và sau khi bạn cài driver thì vào phần device manager chỗ ports sẽ có phần profilic usb to serial, lúc đó mình nghĩ là đủ điều kiện để code tiếp rồi.
Đầu tiên bạn cần open port, tạo 1 button và 1 rich textbox:

serialport serialport = new serialport();
string[] name = serialport.getportnames();
serialport.openport(name[0]);
     ​private void DataReceive(object obj, SerialDataReceivedEventArgs e)
{
            ​InputData = serialPort1.ReadExisting()
            ​if (InputData != String.Empty){
                ​// richtextbox1 = InputData; // Ko dùng đc như thế này vì khác threads 
                ​SetText(InputData); // Chính vì vậy phải sử dụng ủy quyền tại đây. Gọi delegate đã khai báo trước đó
}
 }
        ​private void SetText(string text){

            ​if (this.richtextBox1.InvokeRequired){
 
            ​
 
                ​SetTextCallback d = new SetTextCallback(SetText); // khởi tạo 1 delegate mới gọi đến SetTex
 
                ​this.Invoke(d, new object[] { text })
 
            ​
 }
            ​else this.richtextBox1.Text += text;
 
}

code button:

serialport.writeline("01REPK"); //01REPK là lệnh lấy dữ liệu chế độ peak, 01RETR là  lấy dữ liệu chế độ track thì phải

Dear Vũ Nguyễn
Cám ơn bạn đã phản hồi.
Vậy là buộc phải kết nối cả 2 cổng mới lấy được sao?
Vì mình thấy cái thiết bị nó có cổng usb. Mình có dây kết nồi usb như hình và đã kết nối được.
Phần window form app thì mình code xong và nhận COM được luôn rồi. Nhưng mà lại không truyền dữ liệu qua được.

Bạn có hình chụp thiết bị của bạn không? Nhiều khi 2 thiết bị đang có gì đó khác nhau á.

nhìn link hôm trước với ảnh là thấy cùng 1 thiết bị rồi, nhưng mà mình dùng cách kết nối là qua cổng com serial và sử dụng class serialport nên chia sẻ cho bạn cách đó, còn nếu bạn kết nối qua cổng usb thì e là cách gửi nhận dữ liệu sẽ có khác biệt. Như ở cách của mình thì dùng writeline để gửi lệnh đến thiết bị và dùng readexisting để lấy dữ liệu về. Như trong sách hướng dẫn có nhiều lệnh nhưng mình ví dụ ở đây là 01REPK và 01RETR còn chi tiết hơn bạn hãy xem danh sách lệnh trong sách hướng dẫn. Nếu bạn sử dụng kết nối USB thì thay thế 2 câu lệnh gửi nhận bên trên bằng 2 câu lệnh khác, phần này thì mình lại ko nghiên cứu nên ko hỗ trợ bạn được, sau này khi bạn hoàn thành gửi nhận dữ liệu qua kết nối USB thì làm ơn chia sẻ lại cho mình qua đây nhé!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?