مدت زمان تقریبی مطالعه این متن: 1 حداقل زمان مورد نیاز
1. رد کردن ورودیهای غیرفعال
// پردازش فقط ورودیهای فعال
for (int i = 0; i < 8; i++) {
espRun();
if (!I0[i].Value) {
continue; // رد کردن ورودیهای غیرفعال
}
// پردازش ورودی فعال
SetQ(0, i % 6); // فعال کردن خروجی متناظر
HAL_Delay(50);
}
2. رد کردن خروجیهای غیرفعال
// بررسی فقط خروجیهای فعال
for (int i = 0; i < 6; i++) {
espRun();
if (!Q0[i].Value) {
continue; // رد کردن خروجیهای غیرفعال
}
// پردازش خروجی فعال
if (Q0[i].Rising) {
// عملیات در لبه صعودی
M[i + 100].Value = 1;
}
}
3. رد کردن تایمرهای غیرفعال
// پردازش فقط تایمرهای فعال
for (int i = 0; i < 10; i++) {
espRun();
if (!T[i].IN) {
continue; // رد کردن تایمرهای غیرفعال
}
// پردازش تایمر فعال
if (T[i].Q) {
ResetQ(0, i % 6);
}
}
4. رد کردن رلههای غیرفعال
// پردازش فقط رلههای فعال
for (int i = 0; i < 100; i++) {
espRun();
if (!M[i].Value) {
continue; // رد کردن رلههای غیرفعال
}
// پردازش رله فعال
if (M[i].Rising) {
// عملیات در لبه صعودی رله
SetQ(0, i % 6);
}
}