Các bạn cùng tham gia thảo luận nhé.
Thân chào
Printable View
Các bạn cùng tham gia thảo luận nhé.
Thân chào
HSC dùng để đếm các sự kiện tốc độ cao mà không phụ thuộc chu kỳ quét trong PLC và có tương ứng 12 mode hoạt động khác nhau. Tần số đếm lớn nhất của HSC phụ thuộc vào loại CPU, có thể đạt tối đa 30 kHz.
Mỗi counter có các ngõ vào xác định hỗ trợ các chức năng: xung Clock, hướng điều khiển, reset, và start. Trong chế độ đếm 2 pha, cả hai xung clock có thể hoạt động ở tốc độ lớn nhất. Còn trong chế độ một phần tư (quadrature), thì tùy ý chọn hoạt động theo kiểu 1x hoặc 4x. Tất cả các counter hoạt động ở tốc độ lớn nhất khi không giao tiếp với các hoạt động khác.
HSC sử dụng một shaft encoder để xác định số xung trên một vòng quay và reset số xung đó trên một vòng quay. Số xung clock và xung reset từ shaft encoder cung cấp đến các ngõ vào của HSC. Đặt giá trị đếm xung tương ứng PV, khi số xung hoạt động CV bằng với PV thì xảy ra ngắt, một giá trị đặt PV mới sẽ được setup.
Sơ đồ sau trình bày các chức năng của mỗi counter tùy thuộc vào MODE
Khi muốn khai báo HSC cần khai báo các thông số sau đây:
Mode HSC nào?
Địa chỉ HSC?
Byte điều khiển?
Byte trạng thái?..
Mình sẽ thông tin chi tiết tài liệu mình có nếu các bạn cần.
Thân chào
Để điều khiển tốc độ động cơ là bạn dùng chế độ phát xung tốc độ cao chứ không phải đếm đâu. Trong PLC 200 hỗ trợ phát xung PTO và PWM tích hợp sẵn luôn. Và con mình hay sử dụng đó là loại CPU224, nên mua loại DC/DC/DC vì loại này phát xung tốc độ cao mới đc. Ngõ ra Transistor thì phát mới được chứ Relay mà phát xung là die ngõ ngay tức khắc.
Chúc bạn thành công
Muốn lấy số xung trong khoảng 10ms thì cứ sau mỗi 10ms thì bạn cho ngắt thực hiện lấy mẫu về để coi số xung được được là bao nhiêu rồi quy đổi bình thường ra thôi mà.
Khi nhảy vào chương trình ngắt thì chương trình ngắt sẽ thực hiện với chức năng của mình.
Còn quy đổi số xung đọc được ra động cơ thì làm sao?
Ví dụ: Encoder của bạn là 360 xung/ vòng
bạn đọc được bao nhiêu xung/1s hay trên 10ms như bạn làm
rồi thì bạn lấy số xung đọc được chia cho 360 xung/vòng thì ra số vòng/s. Tới đây chính là tốc độ động cơ.
http://www.mediafire.com/?44lxl9xxckct5k1 đây là đoạn chương trình tiểu luận tốt nghiệp đo tốc độ động cơ mình dùng excell để điều khiển hiệu chỉnh và hiển thị tốc độ trên micrsoft excell bạn tham khảo , chúc thành công
Ai có cách lắp đặt cái cái encoder vào trục động cơ chỉ dùm với ?
bạn có thể mang đến tiệm cơ khí nhờ họ làm.
Pác Hiếu không hiểu đúng câu trả lời rồi, người ta hỏi cách tính vận tốc từ số xung mà, có động chạm gì tới điều khiển đâu nà.
@ phamdanghong : gọi X là số xung của 1 vòng quay, đặt một timer T1 ( ko cần phải dùng ngắt, khi nào bật timer thì tính). khi timer on , nếu bắt được Y xung thì vận tốc là : v=60.k.Y/(T1.X)(vòng/phút), k= 1 phút/T1. bạn lập trình 1 đoạn tính công thức trên và cho tính khi timer on và reset timer sau khi tính xong. vậy là dc
@Hieu: Pac hiếu từ ngày "lên" làm thầy ->mất tích luôn không thấy họp lớp nhỉ !!!
Dùng High speed counter đo tốc độ động cơ mà không dùng ngắt thì ko thể chính xác được:
Giả sử trong 1 khoảng thời gian T phút (thời gian lấy mẫu ) encoder đếm được X xung
Sau T phút thì gọi chương trình ngắt ( ngắt định thời )
Vậy trong khoảng thời gian lấy mẫu T phút thì động cơ quay được X/Y vòng ( Y là số xung encoder/vòng )
suy ra số tốc độ là : N= X/(Y*T) vòng/ phút
trong tiều luận của mình thì số xung encoder của mình là Y=2500 xung/vòng.
sau 1 khoảng thời gian láy mẫu T=200 ms = 0.2s =0.2 /60 phút (SMB34= 200) thì số xung đọc được về là HC1 được lưu ở VD10 ok chưa ?
Vậy trong khoảng thời gian lấy mẫu T phút thì động cơ quay được VD10/Y = VD10/2500 vòng
suy ra số tốc độ là : N= X/(Y*T) = (VD10*60)/ (2500*0.2) Vòng /phút
bạn điều khiển theo USS hả hay analog
chương trình của bạn thời gian lấy mẫu là T=200 ms = 0.2s =0.2 /60 phút để ý lại xem nha, bạn để đơn vị sai rồi. nhân 60 nữa
mode 7 thì A nối I0.6,B nối I0.7 reset I0.2 ,chân Z bỏ ,có gì đau tôi cũng đã từng làm WinCC Flexible điều khiển biến tần MM420 qua chuẩn USS. đọc dòng điện điện áp ,tần số, tốc độ ,hướng quay
giá trị analog từ biến tần về
mình thấy chương trình có vấn đề thì phải ,sao bạn không nhân thêm 60 như lần trước mình nói,bạn bỏ RET ở chương trình con đi thử xem,chương trình con viết cùng trang với ct chính thì mới cần RET , bạn kiểm tra lại Encoder xem có hư chân nào không,mà làm sao bạn biết đọc được chu kì đầu của PLC được tốc độ của nó không phải là nhỏ đâu ạ bạn dùng 224XP thì phải
bây giờ bạn thử viết ra các yêu cầu điều khiển của bạn đi mình xem có giúp được không, chứ mỗi lúc bạn nhảy từ này sang chỗ khác mình không biết theo dõi như nào
bạn thử nối chân A vào I0.6 chân B chân Z không nối vào đâu hết tách riêng ra đừng cho chạm vào nhau và down ct của mình xuống thử xem có đọc được không nha http://www.mediafire.com/?067h9xyib9fwmpd
tùy mình sử dụng chứ không nhất thiết có A và B thì phải sử dụng mode 6 trở lên là không đúng, của mình có A và B nhhưng mình không cần chính xác thì mình dùng mỗi A thôi, chân Z là châb mà 1 vòng thì được 1 xung , và chú ý tần số xung cho phép của encoder phát ra, chú ý đến tần số cho phép của HSC bao nhiêu KHz nếu encoder nối trực tiếp với Roto (không qua hộp số )
quay ngược thì tốc độ nó cũng vậy không có hiện tượng gì,Mode 3,4,5 mới có chân Direction thì mới cho phép đổi phương đếm ví dụ mình đang đếm lên đươc 97,98,99 100 xung nếu chân Direction = 1 thì xung sẽ bị trừ đi xuống 99 ,98 ,97 có bít trạng thái khai báo khi mình cần xem trạng thái của bộ đếm thôi, nó không ảnh liên quan gì đến chương trình điều khiển
tùy mình sử dụng chứ không nhất thiết có A và B thì phải sử dụng mode 6 trở lên là không đúng, của mình có A và B nhhưng mình không cần chính xác thì mình dùng mỗi A thôi, chân Z là châb mà 1 vòng thì được 1 xung , và chú ý tần số xung cho phép của encoder phát ra, chú ý đến tần số cho phép của HSC bao nhiêu KHz nếu encoder nối trực tiếp với Roto (không qua hộp số )
Mình có con encoder ROTARY loại PSC - MB đồ hàn quốc, nhưng chưa biết nó có bao nhiêu xung/ vòng, tìm catalog cả buổi mà ko đc, ai làm rùi giúp mình với. thank
sao bác không dùng tay quay 1 vòng thì biết được nó bao nhiêu xung chứ gì ( kết hợp với bộ đếm tốc độ cao là ra ) vì xung 1 vòng chắc chắn không phải là số lẻ rồi (ví dụ mình quay được 1 vòng hay quá 1 chút,hay là chưa đủ 1 vòng mà đếm được 364, hay 357 ,hay 359 thì chắc chắn nó là 360 vòng/phút) . em đã gặp với trường hợp này rồi kết quả chính xác cho đến trước khi em tìm được catalo của nó.
http://plcvietnam.com.vn/showthread....BB%9Bi-FM350-1
bạn vào đó cùng trao đổi với mình nhé. Cám ơn mình đang làm về FM350 luôn. Có gì chúng ta hỗ trợ nhau nhé.
cám ơn bạn nhiều
bác này liều đấy, dùng high speed counter mà dùng timer đo tốc độ thì có chính xác không
Chào bạn phamdangphong,
Không biết bạn làm được chưa? Tôi có đọc qua chương trình của bạn, nhưng thấy rất ok, không phát hiện sai sót gì hết.
Bạn cho hỏi thêm: bạn dùng motor với đuôi encoder để đo phải không bạn, bạn có kiểm tra encoder này có bị lỗi không, encoder này có áp đủ để kích cho input plc không? Hoặc có thể bạn dùng encoder rời, cấp nguồn 24VDC, đấu 02 phase A và B để kiểm tra.
Có thông tin gì bạn cứ post lên nha.
Ah, tôi mới đọc kỹ chương trình của bạn rùi.
Bạn biết lỗi gì không? Phải khao tui 1 chầu cafe đó nha!!!!
Bạn dùng địa chỉ bị trùng: VD202, next VD204, next VD206,.................
Bạn hiểu ý chưa?
----------------------------------------------------
Bạn khanghuan ơi, tui vô trang web của bạn mà không được, báo lỗi gì đó
Welcome to the home of khanghuan.com
To change this page, upload your website into the public_html directory
Chào bạn;
Bạn dùng thanh ghi VD202 là thanh ghi dạng gì vậy bạn???? 1 byte, 1 word hay 1 dword???
Nếu dùng thanh ghi dạng dword thì sẽ chiếm mấy byte?
Bạn sử dụng VD202, bạn gả em này cho 1 người A. Sau đó, bạn lấy VD204, lại gả em này cho 1 người khác B.
Cuối dùng người A và B quánh lộn!
Bạn hiểu ý chưa?
Yêu cầu của bạn là như thế nào ? Tôi cũng đã làm thử nhưng chưa thành công, vẫn đang ngâm cứu tiếp. Sử dụng truyền thông nối tiếp, vấn đề của tui gặp phải là con MAX 232 bị nóng khi truyền dữ liệu. đang tìm cách khắc phục mà chưa được, Thử làm cái nếu truyền được thì biến con VDK thành cơ cấu (modul mở rộng) cho S7 200.
Nếu bạn muốn xác định chiều và đo speed thì nên dùng Mode 10 và xung A nối I0.0 và xung B nối I0.1 mode 0 đâu xác định được chiều vì mode 0 chỉ xài single phase
Bài tut tôi viết bạn down về test thử
http://www.mediafire.com/?g7o4s7286b8ez60
Nếu đo 1 pha riêng ok thì không vấn đề gì.Quan trọng là bạn phải nối chính xac phase A vào I0.0 và phase B vào I0.1 khi bạn quay thử Encoder sẽ thấy 2 đèn I0.0 à I0.1 chớp tắt luân phiên liên tục là đúng.Encoder bạn bao nhiêu xung trên vòng.Và chú ý là khi sử dụng 2 phase số lượng xung encoder đưa về PLC sẽ khác khi sử dụng 1 phase
Ví du encoder của tôi khi sử dung 1 phase A hoặc B thì là 100 xung/vòng
nhưng khi sử dụng 2 phase sẽ là 400 xung/ vòng do A và B vuông pha với nhau
Tôi dùng biến tần điều khiển động cơ nên dùng analog phát áp 0-10v điều khiển speed động cơ.Biến tần cần 1 chân Run và 1 chân analog để chạy.Bạn mô phỏng như thế nào quay encoder?
Bạn đọc lại tài liệu HSC đi.C0(11000000) là chính xác không sai đâu tôi đảm bảo.Bit khai báo 1x hay 4x là SM37.2
Tôi khai báo HSC bằng Wizard chắc chắn 100% chính xác.
Chương trình tôi up lên chắc chắn 9 xac
Và ở đây tôi đang xài HSC0 đọc kỹ lại comment chương trình.Dùng ngắt 22 với T96 đo speed
Giải thuật đơn giản như sau:
100ms đọc 1 lần xung===>Speed xung/100ms tính toán để ra V/Ph(x6.0 do encoder tôi tính toán dựa trên số xung trên 1 vòng quay) rồi reset timer
Theo em nghĩ chắc encoder đọc từng phase ok thì không phải do encoder đâu không biết cách bạn test thế nào hoặc có thể do chương trình bạn có vấn đề
Dùng tut của tôi test nối 9 xac I0.0 phase A I0.1 phase B rồi dùng status chart theo dõi HC0 hoặc MD10 để xem dạng V/P khi xem nhớ chọn loại dữ liệu là floating point
Chương trình trên topic nay thi chỉ đơn thuần đo speed khong co PID đâuCó chương trình tui up bên topic cùng hoc Wincc thì có PID.Còn PID thì có nhiều phương pháp lay thông số nếu trên lý thuyết thì có cách dùng thực nghiệm theo phương pháp của Zeigler-Nichols.Còn dùng PLC thì có PID tool công cụ hỗ trợ chọn G Ti TD
tải thì có nhiều cách có thể dùng tải cơ hoặc dùng thắng.Bên này tôi cho sinh viên làm 1 động cơ 3 phase kéo 1 dynamo phát điện 220VAC rồi đóng cho các bóng cao áp làm tải.Khi đó sẽ điều khiển speed động cơ 3 phase bằng biến tần để ổn định điện áp dynamo phát ra
Clip tham khảo hệ thống,nếu muốn tim hiểu phần cứng thì chắc phải đến tận nơi xem^^.
Phần chính như thế này:PLC---BT---Dongco keo Dynamo----Encoder back về PLC
http://www.youtube.com/watch?v=r-nNNM5mc94
phương pháp của Zeigler-Nichols đọc lại bên trên dùng xác định tham số của bộ PID.Còn việc hàm truyền thì pó tay.Để xây dựng được hàm truyền cho 1 hệ bất kỳ như thế này ko đơn giản.Chắc bạn phải chờ cao thủ nào đó hướng dẫn thôi
Còn nếu đơn thuần lấy Gain Ti Td thì dùng PID control tool trong S7 200
các bác cho em hỏi chút: lệnh SHRB trong S7200 có mô phỏng được ko? nếu được chỉ dùm em với. cảm ơn mọi người nhiều