theo như bạn nói để đếm số lần làm việc của 1 chu trình thì chẳng cần phức tạp hóa vấn đề như thế này đâu bạn ạ
theo tôi thì khi bắt đâu cho chu trình làm việc phải có điều kiện cho nó đúng ko
và như thế tương ứng như nút ấn START hệ thống, bạn cho vào 1 tiếp điểm song song với điều kiện
bắt đầu, sau đó cho nó lấy xung cạnh lên cho vào Counter đếm số lần, bao nhiều tùy bạn
dùng timer như mọi người nói để tạo xung thôi, bạn nói khống chế cho 5s sau đó đếm,vậy chu trình của bạn nói có chắc nó diễn ra chuẩn đúng 5s ko.điều này ko giám chắc đâu bạn.
đó là ý kiến của tôi ,có gì sai xót mong mọi người góp ý thêm
Cảm ơn ý kiến của bạn.
Cách làm của bạn cũg tương tự như mình nói ở phía trên là đếm số lần hoạt độg của 1 phần tử trog cơ cấu. Nhưg theo mìh thì nên đếm điều kiện kết thúc của phần tử cuối cùg hoạt độg trước khi chuyển sag chu trình mới, còn nếu bạn đếm theo điều kiện bắt đầu thì sẽ dễ bị mất lần lặp lại cuối cùg (mình nghĩ thế :D, nhưg hoàn toàn có thể sử dụg đc cách này).
Trở lại như bài này, thì điều kiện bắt đầu của quá trìh là T0 chuyển lên 1 (ko có thời gian nghỉ giữa 2 chu trình nhé) thì nếu mình dùg Counter để đếm T0 thì lại mắc lỗi như ban đầu rồi.
Mìh đã thử thực hiện bài này ở S7 200 và Counter vẫn đếm đc số chu trìh hoạt độg nhưg ở S7 300 thì ko. Ko biết nguyên nhân của sự khác biệt này là j, mog mọi ng cho ý kiến
Thanks trc nhé
Em cần viết ct nếu q0.0 on thì sau 5s cho q0.1 ON. cái này viết bằng ngắt trì hoãn mà em không biết cái SIGN của hàm SFC32 có nghĩa là gì nên cứ báo lỗi chỗ đó.
Anh chị có thể giúp em cái ví dụ nho nhỏ về hàm SFC32 đc không ạ ??
Xin cám ơn ![-O<
Em cần viết ct nếu q0.0 on thì sau 5s cho q0.1 ON. cái này viết bằng ngắt trì hoãn mà em không biết cái SIGN của hàm SFC32 có nghĩa là gì nên cứ báo lỗi chỗ đó.
Anh chị có thể giúp em cái ví dụ nho nhỏ về hàm SFC32 đc không ạ ??
Xin cám ơn ![-O<
Anh Hiếu giúp mình tí nhé. chức năng của khối OB85, khối OB85 có lập trình được không? Khi lập trình PLC nhất thiết có phải đưa thêm khối OB85 vào chương trình không? Mong giúp đỡ
Mọi câu hỏi hãy đưa lên diễn dàn. Tôi không dùng hộp thư riêng.
Bài viết
3,151
Thanks
257
1,085 lượt trong 567 bài viết
Gửi bởi An Duong
Anh Hiếu giúp mình tí nhé. chức năng của khối OB85, khối OB85 có lập trình được không? Khi lập trình PLC nhất thiết có phải đưa thêm khối OB85 vào chương trình không? Mong giúp đỡ
OB85 - lỗi chương trình.
Bạn nên đọc từ đầu bài nhé. vì ở đó có trình bày rồi.
Còn cách hoạt động là khi xảy ra lỗi chương trình thì nó sẽ ngắt OB1 không thực hiện OB1 mà nhảy sang thực hiện OB85, còn cách lập trình không có gì khác, hoàn toàn tương tự nhé bạn.
Bạn nên đọc từ đầu bài nhé. vì ở đó có trình bày rồi.
Còn cách hoạt động là khi xảy ra lỗi chương trình thì nó sẽ ngắt OB1 không thực hiện OB1 mà nhảy sang thực hiện OB85, còn cách lập trình không có gì khác, hoàn toàn tương tự nhé bạn.
cái trạm PLC chõ em cứ 2 tháng nó lại bị đơ một lần.em kiểm tra mọi cái vẫn ngon,tín hiệu input vẫn có, nhưng nó lại không set đầu ra.Chương trình em viết bằng cac khối FB, FC sau đó ra OB1 gọi nó ra sử dụng.Liệu có phải em không sử dụng các khối chức năng không anh.
Mọi câu hỏi hãy đưa lên diễn dàn. Tôi không dùng hộp thư riêng.
Bài viết
3,151
Thanks
257
1,085 lượt trong 567 bài viết
Gửi bởi An Duong
cái trạm PLC chõ em cứ 2 tháng nó lại bị đơ một lần.em kiểm tra mọi cái vẫn ngon,tín hiệu input vẫn có, nhưng nó lại không set đầu ra.Chương trình em viết bằng cac khối FB, FC sau đó ra OB1 gọi nó ra sử dụng.Liệu có phải em không sử dụng các khối chức năng không anh.
Hi Mr An Dương.
Tình hình là thế này nhé. Mỗi lệnh của mình sẽ tốn không khoảng thời gian T = x * chu kỳ lệnh ( 0.1 - 0.3 us) do đó khi viết tại mỗi thời điểm sẽ cộng dồn lại và tạo ra sai số ( y như việc điều chỉnh dây cót đồng hồ ngày xưa đó) thì sau khoảng thời gian sẽ tạo ra khoảng thời gian không mong muốn, vấn đề này có thể coi lại code thôi. Có một số giải pháp như sau đối với một số hệ thống là:
1. Cô lập các chương trình với nhau. Mọi thứ sẽ chỉ là các Function Block để quản lý lỗi xảy ra tại vị trí nào?
2. Trong những ứng dụng để tối ưu hoá thời gian cho hệ thống thì viết bằng STL hoặc SCL ( LAD vẫn giải quyết được nhưng bị hạn chế vì chiếm mất thời gian nhiều hơn so với bình thường).
3. Dùng lệnh SET thời gian thực để hệ thống tự động RESET về thời gian gốc để không bị lỗi. Có thể để hệ thống sau 1 tháng thì trả về thời gian gốc. Đây là một giải pháp xoá lỗi đơn giản nhưng ít người nghĩ.
Good moring all,
Mục đích của mình khi viết chủ đề này nhằm huy động trí lực và kinh nghiệm của tất cả anh em nhằm xây dựng một thư viên hàm cho các hãng PLC ( bắt đầu với S7300/400).
Có thể một số anh em sẽ rất ngạc nhiên khi đọc bài này vì có thể thắc mắc tại sao chúng ta lại xây dựng lại các hàm làm gì trong khi chúng ta đã có các FB,FC,SFB,SFC có trong thư viện của Step 7. Mình xin mạn phép lý giải thế này:
- Thứ nhất, các bạn có thể thấy, thư viện của S7 chưa đủ để các bạn có thể thực thi các ứng dụng
- Thứ hai, với những ai đang nghiên cứu, học tập chuyên sâu về PLC thì hệ thống hàm thư viện là thực sự quan trọng để hiểu cặn kẽ mọi vấn đề.
- Thứ ba, nếu chúng ta có 1 hệ thống hàm thư viện thì chúng ta sẽ ko bị ràng buộc bất cứ điều gì vì đó là do chúng ta tạo ra, chúng ta hiểu rõ hơn ai hết, do vậy, chúng ta mới thực sự là những người am hiểu PLC một cách cặn kẽ nhất.
Hiện tại thì mình đã xây dựng khá đầy đủ thư viện hàm cho S7 và đang cố gắng xây dựng cho họ PLC Allen-Bradley
Nhưng, biển học là vô bờ, có thể anh em còn có nhiều phương án giải quyết hay hơn và mình rất mong chờ điều đó từ các anh em trong diễn dàn.
Đầu tiên, hãy bắt đầu bằng 1 số hàm đơn giản :
1) Reset Range of Outputs (RSET): FC82
-------------------------------------------------
Description: The Reset Range of Outputs (RSET) function resets the signal state of each
bit in a specified range to 0 if the MCR bit is 1. If the MCR bit is 0, the
signal state of each bit in the range remains unchanged. The number of bits
in the range to be reset is specified by N, and the starting point of the range is
pointed to by S_BIT
Parameter | Declaration | Data Type | Memory Area | Description
---------------------------------------------------------------------------------------------------------
EN | Input | BOOL |I, Q, M, D, L | Enable input with signal state of 1
activates the box
---------------------------------------------------------------------------------------------------------
ENO Output BOOL I, Q, M, D, L Enable output has a signal state of 1 if
the function is executed without error
---------------------------------------------------------------------------------------------------------
S_BIT Input Pointer* I, Q, M, D Points to the first bit in the range
---------------------------------------------------------------------------------------------------------
N Input INT I, Q, M, D, L, P or constant Number of bits in the range
to be reset
---------------------------------------------------------------------------------------------------------
Các bạn có thể tham khảo thêm cún : "Standard Software for S7-300 and S7-400" để biêt rõ thêm chi tiết của hàm
Lưu ý các anh em: Mục đích trước mắt của chúng ta là viết lại các hàm có chức năng tương đương trong thư viện, nhờ đó mà chúng ta học hỏi được nhiều thứ, chúng ta đừng cho ý tưởng viết lại này là quá điên rồ, vì trước mắt chúng ta cần nắm vững ngôn ngữ lập trình.
Good luck to all,
Lần sửa cuối bởi Dragon_Auto, ngày 03-09-2012 lúc 04:36 AM.
Đánh dấu