• info@ehsansanatpasargad.com
ESPESPESPESP
            No results See all results
            فارسی
            • English
            • Arabic
            • Russian
            • Turkish
            • صفحه اصلی
            • فروشگاه
            • تماس با ما
            • درباره ما
            • راهکارهای ESP
              • مانیتورینگ کارخانجات
              • روشنایی هوشمند مجتمع های بزرگ
            • راهنما
              • زبان STL برای ESP
              • دایره المعارف STL
            • رسانه تصویری
              • آموزش زبان برنامه نویسی ST
              • دوره آموزش STL
            • دانلود
              • ESP Builder
              • STM32cubeIDE
            • محصولات ESP در عمل
            ✕
                      No results See all results

                      Set

                      • Home
                      • Set

                      محیط برنامه نویسی

                      1
                      • ایجاد پروژه جدید برای پی ال سی ایرانی ESP-0806

                      برنامه نویسی ST

                      16
                      • ورودی / خروجی پی ال سی
                        • رله های داخلی M
                        • خروجی دیجیتال Q
                        • ورودی دیجیتال I
                      • کنترل روند برنامه
                        • if
                      • دستورات کنترل بیت
                        • ToggleRelay
                        • ToggleQ
                        • Reset
                        • Set
                        • ResetQ
                        • SetQ
                        • OutQ
                      • تایمر و شمارنده
                        • Delay
                        • espGetCurrentTime
                        • espElapsedTime
                        • Timer
                      • بیت های کنترلی
                        • پالسهای آماده

                      برنامه نویسی C

                      5
                      • فایلهای Header
                      • Declarations اعلان ها
                        • اعداد حقیقی
                        • اعداد صحیح
                        • include
                        • extern
                      مشاهده دسته‌ها
                      • صفحه اصلی
                      • مستندات ESP
                      • STL
                      • برنامه نویسی ST
                      • دستورات کنترل بیت
                      • Set

                      مدت زمان تقریبی مطالعه این متن: 3 زمان تقریبی برای مطالعه این مطلب

                      پی ال سی ایرانی ESP-0806-B

                      ESP-0806

                      قابل استفاده برای تمامی مدلها

                      در این آموزش با نحوه استفاده از دستور Set برای کنترل خروجی های دیجیتال پی ال سی ایرانی ESP-0806 آشنا می شوید.

                      با استفاده از دستور Set براحتی می توانید خروجی نامگذاری شده مورد نظر را روشن کنید. توجه داشته باشید که دستور Set کاری با خاموش کردن خروجی مذکور ندارد.

                      ساختار کلی دستور

                      تعریف دستور Set

                      void Set(Output *Output);
                      

                      پارامترها

                      Output: اشاره‌گر به خروجی مورد نظر (نوع Output)

                      مقدار بازگشتی

                      void: هیچ مقداری برنمی‌گرداند

                      روشهای استفاده

                      1- استفاده مستقیم با اشاره گر

                      // تعریف اشاره‌گرها
                      Output *motorUp = &Q0[0];
                      Output *motorDown = &Q0[1];
                      Output *pump = &Q0[2];
                      Output *valve = &Q0[3];
                      
                      // فعال کردن خروجی‌ها
                      Set(motorUp);      // فعال کردن موتور بالا
                      Set(pump);         // فعال کردن پمپ
                      Set(valve);        // فعال کردن شیر
                      

                      2- استفاده مستقیم با آرایه

                      // فعال کردن خروجی‌های مختلف
                      Set(&Q0[0]);       // فعال کردن Q0.0
                      Set(&Q0[1]);       // فعال کردن Q0.1
                      Set(&Q0[2]);       // فعال کردن Q0.2
                      Set(&Q0[3]);       // فعال کردن Q0.3
                      Set(&Q0[4]);       // فعال کردن Q0.4
                      Set(&Q0[5]);       // فعال کردن Q0.5
                      

                      2- استفاده مستقیم در شرطها

                      // فعال کردن بر اساس شرط
                      if (I0[0].Value) {
                          Set(&Q0[0]);   // اگر ورودی I0.0 فعال باشد، Q0.0 را فعال کن
                      }
                      
                      if (M[0].Value && !M[1].Value) {
                          Set(&Q0[1]);   // اگر M0 فعال و M1 غیرفعال باشد، Q0.1 را فعال کن
                      }
                      

                      مثالهای کاربردی

                      1- کنترل موتور ساده

                      // تعریف اشاره‌گرها
                      Output *motorUp = &Q0[0];
                      Output *motorDown = &Q0[1];
                      Input *upButton = &I0[0];
                      Input *downButton = &I0[1];
                      
                      // منطق کنترل موتور
                      if (upButton->Value && !downButton->Value) {
                          Set(motorUp);      // فعال کردن موتور بالا
                          Reset(motorDown);  // غیرفعال کردن موتور پایین
                      } else if (downButton->Value && !upButton->Value) {
                          Set(motorDown);    // فعال کردن موتور پایین
                          Reset(motorUp);    // غیرفعال کردن موتور بالا
                      } else {
                          Reset(motorUp);    // توقف موتور بالا
                          Reset(motorDown);  // توقف موتور پایین
                      }
                      
                      

                      2- کنترل سیستم پمپاژ

                      // تعریف اشاره‌گرها
                      Output *pump = &Q0[2];
                      Output *inletValve = &Q0[3];
                      Output *outletValve = &Q0[4];
                      Input *startButton = &I0[2];
                      Input *tankFull = &I0[3];
                      Relay *pumping = &M[0];
                      
                      // منطق کنترل پمپ
                      if (startButton->Rising && !pumping->Value) {
                          Set(inletValve);   // باز کردن شیر ورودی
                          Delay(1000);       // تاخیر 1 ثانیه
                          Set(pump);         // روشن کردن پمپ
                          SetRelay(pumping); // تنظیم وضعیت پمپاژ
                      }
                      
                      if (tankFull->Value && pumping->Value) {
                          Reset(pump);       // خاموش کردن پمپ
                          Reset(inletValve); // بستن شیر ورودی
                          Set(outletValve);  // باز کردن شیر خروجی
                          ResetRelay(pumping); // ریست وضعیت پمپاژ
                      }
                      
                      

                      3- کنترل سیستم هشدار

                      // تعریف اشاره‌گرها
                      Output *alarm = &Q0[5];
                      Input *smokeSensor = &I0[4];
                      Input *temperatureSensor = &I0[5];
                      Relay *alarmActive = &M[1];
                      
                      // منطق سیستم هشدار
                      if ((smokeSensor->Value || temperatureSensor->Value) && !alarmActive->Value) {
                          Set(alarm);           // فعال کردن زنگ هشدار
                          SetRelay(alarmActive); // تنظیم وضعیت هشدار
                      }
                      
                      if (!smokeSensor->Value && !temperatureSensor->Value && alarmActive->Value) {
                          Reset(alarm);         // غیرفعال کردن زنگ هشدار
                          ResetRelay(alarmActive); // ریست وضعیت هشدار
                      }
                      
                      

                      4- کنترل توالی عملیات

                      // تعریف اشاره‌گرها
                      Output *step1Output = &Q0[0];
                      Output *step2Output = &Q0[1];
                      Output *step3Output = &Q0[2];
                      Relay *step1 = &M[0];
                      Relay *step2 = &M[1];
                      Relay *step3 = &M[2];
                      uint32_t stepStartTime = 0;
                      
                      // منطق توالی عملیات
                      if (step1->Value && !step2->Value) {
                          Set(step1Output);
                          if (espElapsedTime(stepStartTime, 3000)) {
                              Reset(step1Output);
                              ResetRelay(step1);
                              SetRelay(step2);
                              stepStartTime = espGetCurrentTime();
                          }
                      }
                      
                      if (step2->Value && !step3->Value) {
                          Set(step2Output);
                          if (espElapsedTime(stepStartTime, 5000)) {
                              Reset(step2Output);
                              ResetRelay(step2);
                              SetRelay(step3);
                              stepStartTime = espGetCurrentTime();
                          }
                      }
                      
                      if (step3->Value) {
                          Set(step3Output);
                          if (espElapsedTime(stepStartTime, 2000)) {
                              Reset(step3Output);
                              ResetRelay(step3);
                              stepStartTime = espGetCurrentTime();
                          }
                      }
                      
                      

                      نکات مهم:

                      1- بررسی اشاره گر

                      // همیشه اشاره‌گر را بررسی کنید
                      if (Output != NULL) {
                          Set(Output);
                      }
                      
                      

                      2- تداخل عملیات

                      // اشتباه - ممکن است تداخل ایجاد کند
                      Set(&Q0[0]);
                      Set(&Q0[1]);
                      
                      // صحیح - بررسی وضعیت قبل از تنظیم
                      if (!Q0[0].Value) Set(&Q0[0]);
                      if (!Q0[1].Value) Set(&Q0[1]);
                      
                      
                      ESP-0806-B, ESP-0806-C, ESP-0806-D, ESP-0806-E

                      احساس شما چیست

                      • خوشحال
                      • معمولی
                      • غمگین
                      این مقاله را به اشتراک بگذارید:
                      • Facebook
                      • X
                      • LinkedIn
                      • Pinterest
                      ResetResetQ

                      دیدگاهتان را بنویسید لغو پاسخ

                      نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

                      لینک های مفید

                      • تماس با ما
                      • درباره ما
                      • وبلاگ ما

                      ساعت کار

                      تهران, حکیمیه, پردیس فنی شهید عباسپور, پارک علم و فناوری, طبقه اول, واحد 16

                      شنبه تا چهارشنبه
                      9 صبح الی 5 بعد ازظهر

                      Ehsansanatpasargad @2024
                      0

                      0﷼

                      فارسی
                                No results See all results
                                • English
                                • فارسی
                                • Arabic
                                • Russian
                                • Turkish
                                ✕

                                ورود

                                گذرواژه خود را فراموش کرده اید؟

                                ✕

                                سبد خرید

                                سبد خرید شما در حال حاضر خالی است.

                                جمع جزء: 0﷼
                                مجموع: 0﷼
                                ادامه جهت تسویه حساب مشاهده سبد خرید
                                • فروشگاه
                                • حساب کاربری من
                                • 0 سبد خرید
                                • فارسی