ابزار Artistic Variable در نرم افزار DGUS چیست و کجا به کار میرود؟
وقتی طراحی یک رابط کاربری صنعتی روی نمایشگرهای سری DWIN انجام میشود، یکی از اولین چالشها اینجاست: چطور یک مقدار عددی خام از میکروکنترلر را به یک عنصر بصری معنادار تبدیل کنیم؟ ابزار Artistic Variable در نرم افزار DGUS دقیقاً برای همین ساخته شده. این ابزار امکان انتساب یک آدرس حافظهی مشخص به یک عنصر گرافیکی، مثل متن عددی، نوار پیشرفت، یا آیکون متغیر، را فراهم میکند تا هر بار که مقدار حافظه تغییر کند، نمایشگر بدون نیاز به دستور مجزا، محتوای صفحه را بهروز کند.
کاربرد این ابزار بیشتر در پروژههایی مطرح است که دادههای بلادرنگ نمایش داده میشوند: دمای سنسور، سرعت موتور، سطح مخزن، یا کدهای خطا. در این سناریوها، Artistic Variable نقش واسط بین لایه سختافزار و لایه نمایش را بازی میکند. بدون آن، هر تغییر نمایشی نیاز به دستور صریح از سمت MCU دارد که هم پهنای باند سریال را مصرف میکند و هم زمان پاسخ را افزایش میدهد.
ساختار داده و نحوه تعریف متغیر در محیط DGUS
در محیط DGUS، هر متغیر با یک آدرس ۱۶ بیتی در فضای حافظهی نمایشگر تعریف میشود. این آدرسدهی ساختار مشخصی دارد که درک آن قبل از شروع پیکربندی ضروری است.
انواع دادههای قابل انتساب به متغیر
دادههایی که میتوان به یک Artistic Variable انتساب داد شامل چند دسته اصلی هستند:
- Integer (عدد صحیح): برای نمایش مقادیر بدون اعشار مانند شمارنده یا کد خطا.
- Fixed-point (نقطه ثابت): برای مقادیر اعشاری که نمایشگر آنها را با تقسیمبندی داخلی پردازش میکند، مثل دما با یک رقم اعشار.
- ASCII / Unicode string: برای نمایش رشتههای متنی که مستقیماً از MCU ارسال میشوند.
انتخاب نوع داده اشتباه یکی از رایجترین دلایل نمایش عدد ناخوانا یا شیفت خوردن اعشار است.

آدرسدهی در حافظه SP و VP
در DGUS دو فضای آدرس مطرح است: SP (System Parameter) که تنظیمات کلی نمایشگر در آن نگه داشته میشود، و VP (Variable Pointer) که محل اصلی قرارگیری دادههای متغیر است. هر Artistic Variable به یک آدرس VP اشاره میکند. این آدرس باید در بازهی معتبر سختافزار مورد استفاده باشد و با سایر اجزای صفحه تداخل نداشته باشد. فاصلهگذاری آدرسها اهمیت دارد؛ اگر دو متغیر آدرس یکسان یا همپوشانی داشته باشند، رفتار نمایشگر غیرقابل پیشبینی میشود.
پیکربندی گامبهگام Artistic Variable در ویرایشگر بصری
برای تعریف این ابزار در ویرایشگر بصری DGUS باید مراحل زیر را بهترتیب طی کنید:
- از منوی ابزار، گزینه Artistic Variable را انتخاب کنید و روی صفحهی طراحی یک ناحیه رسم کنید.
- در پنجره تنظیمات، آدرس VP را وارد کنید؛ این آدرس باید با آدرسی که MCU در آن مینویسد یکسان باشد.
- نوع داده را مشخص کنید (Integer، Fixed-point یا String).
- فونت، رنگ، و تراز متن را تنظیم کنید.
- پروژه را ذخیره و فایلهای خروجی را روی کارت حافظه نمایشگر بارگذاری کنید.
تنظیم پارامترهای نمایش و محدوده مقدار
در بخش تنظیمات متغیر، میتوان حداقل و حداکثر مقدار قابل نمایش را تعریف کرد. این کار از نمایش مقادیر خارج از بازه جلوگیری میکند. علاوه بر این، پارامتر تعداد رقم اعشار برای دادههای Fixed-point باید با تقسیمکنندهی طرف MCU هماهنگ باشد؛ مثلاً اگر MCU مقدار ۲۵۵ را برای نمایش ۲۵.۵ ارسال میکند، باید یک رقم اعشار در تنظیمات انتخاب شود.
ارتباطدهی متغیر به اجزای گرافیکی
Artistic Variable فقط به نمایش عدد محدود نیست. میتوان آن را به تصاویر آیکونمحور هم متصل کرد؛ به این شکل که بسته به مقدار عددی، تصویر متفاوتی نمایش داده شود. این قابلیت برای طراحی شاخصهای وضعیت (مثل چراغهای سیگنال یا نمادهای هشدار) بسیار کاربردی است. آدرس VP یکسان میتواند همزمان هم یک متن عددی و هم یک آیکون شرطی را کنترل کند، که این کار حجم ارتباط سریال را کاهش میدهد.

ارتباط Artistic Variable با پروتکل ارتباطی سریال و بهروزرسانی real-time
نمایشگرهای DWIN از پروتکل سریال اختصاصی خود برای تبادل داده با MCU استفاده میکنند. برای بهروزرسانی مقدار یک Artistic Variable، MCU باید یک فریم نوشتن حافظه را به آدرس VP مربوطه ارسال کند. ساختار این فریم بهصورت کلی شامل هدر، دستور نوشتن، آدرس، طول داده، و خود داده است.
نکته مهم اینجاست که DGUS بهصورت خودکار آدرسهای VP را در بازههای زمانی مشخص پولینگ نمیکند؛ بهروزرسانی فقط وقتی MCU دادهی جدید مینویسد اتفاق میافتد. پس اگر به نمایش بلادرنگ نیاز دارید، فرکانس ارسال داده از سمت MCU باید متناسب با نرخ تغییر فیزیکی کمیت اندازهگیریشده باشد. ارسال بیش از حد هم میتواند باعث اشباع بافر سریال نمایشگر شود و تاخیر ایجاد کند. نرخ Baud پیشفرض در اکثر مدلها ۱۱۵۲۰۰ است، اما برای پروژههای با دادهی زیاد باید این پارامتر را در تنظیمات SP بررسی و در صورت نیاز تغییر داد.

خطاهای رایج در تنظیم متغیر و روش عیبیابی
در عمل، بیشتر مشکلات Artistic Variable از چند منبع محدود سرچشمه میگیرند. شناختن این منابع زمان عیبیابی را کوتاه میکند:
- تداخل آدرس VP: دو عنصر روی صفحه که آدرس یکسان دارند و دادههای مختلف باید نمایش دهند. راهحل، بازبینی جدول آدرسبندی پروژه است.
- عدم تطابق نوع داده: MCU داده Integer ارسال میکند اما نمایشگر برای String تنظیم شده. خروجی معمولاً کاراکترهای ناخوانا یا عدد صفر است.
- خطای اعشار: ضریب تقسیم در MCU با تعداد رقم اعشار در تنظیمات DGUS هماهنگ نیست.
- فایلهای قدیمی روی کارت حافظه: بعد از تغییر پروژه اگر فایلها بهدرستی بازنویسی نشوند، نمایشگر همچنان تنظیمات قدیمی را اجرا میکند.
برای دیباگ، ابزار Monitor سریال کمک میکند تا فریمهای خروجی MCU را بررسی کنید و مطمئن شوید داده درست در آدرس درست نوشته میشود.
کاربردهای عملی در طراحی HMI صنعتی
در پروژههای HMI صنعتی، این ابزار معمولاً در چند سناریوی پرتکرار به کار میرود. نمایش دمای لحظهای در کورههای صنعتی که دقت نمایش مستقیماً روی تصمیم اپراتور اثر دارد، یکی از شایعترین آنهاست. نمایش سرعت درایو یا فرکانس اینورتر در خطوط تولید هم نمونه دیگری است که معمولاً با Fixed-point و دو رقم اعشار پیاده میشود.
در پنلهای کنترل موتور، ترکیب یک Artistic Variable عددی برای نمایش جریان و یک Artistic Variable آیکونی برای وضعیت خطا روی همان آدرس VP، طراحی فشرده و خوانایی بالا ایجاد میکند. محیطهای با نوسان دمایی بالا (مثل محیطهای کنار کوره یا فضای باز) نیازمند دقت در انتخاب کابل و اتصالات سریال هستند چون خطای ارتباطی در این شرایط اغلب به نظر میرسد مشکل از تنظیمات DGUS است، در حالی که مشکل فیزیکی است.
نکات اجرایی پیش از استقرار پروژه روی سختافزار نهایی
پیش از نصب نهایی نمایشگر روی تابلو یا دستگاه، چند بررسی باید انجام شود تا از بروز مشکل در محیط واقعی جلوگیری شود:
- تأیید جدول VP: همه آدرسهای استفادهشده در پروژه را در یک جدول مستند کنید و تداخل بررسی شود.
- تست زیر بار کامل: همه متغیرها را همزمان فعال کنید و بررسی کنید که نمایشگر با تأخیر یا پیکسلهای ثابت مواجه نمیشود.
- بررسی نسخه Firmware: مدلهای مختلف DWIN ممکن است رفتار متفاوتی در پردازش نوع داده داشته باشند؛ نسخه Firmware نمایشگر را با مستندات سازنده تطبیق دهید.
- شبیهسازی خطای ارتباطی: کابل سریال را موقتاً قطع کنید و ببینید نمایشگر مقدار آخر را نگه میدارد یا صفحه خالی میشود؛ رفتار مطلوب را از قبل تعریف کنید.
یک نکته که اغلب نادیده گرفته میشود: فایلهای پروژه DGUS باید با ساختار دایرکتوری دقیقی روی کارت SD قرار بگیرند. کوچکترین اشتباه در نامگذاری پوشه باعث میشود نمایشگر پروژه را اصلاً شناسایی نکند و این موضوع در محیط کارگاهی پرمشغله بهراحتی وقتگیر میشود. مستندسازی ساختار فایل را بهعنوان بخشی از فرایند تحویل پروژه جدی بگیرید.
سوالات متداول درباره استفاده از ابزار Artistic Variable در نرم افزار DGUS
- چرا مقدار Artistic Variable روی نمایشگر بهروز نمیشود، در حالی که داده از میکروکنترلر ارسال میشود؟
آدرس VP تعریفشده در ویرایشگر با آدرسی که میکروکنترلر به آن مینویسد تطابق ندارد، یا فرمت داده اشتباه است. بررسی کن که طول داده (1 Word یا 2 Word) و نوع علامتدار/بدون علامت در هر دو طرف یکسان باشد. همچنین مطمئن شو فریم ارسالی با هدر 0x5A A5 شروع و Checksum درست محاسبه شده باشد. - تفاوت آدرس SP و VP در تعریف متغیر چیست و کدام را برای دادههای real-time انتخاب کنم؟
SP آدرس حافظه داخلی صفحهنمایش است و برای ذخیره پارامترهای پیکربندی ثابت (مثل محدوده مقیاس) به کار میرود. VP آدرس حافظه متغیر است که میکروکنترلر مستقیماً روی آن مینویسد و DGUS آن را برای رندر لحظهای میخواند. برای دادههای real-time فقط VP استفاده کن. - چطور یک متغیر واحد را به چند المان گرافیکی مختلف در یک صفحه وصل کنم؟
کافی است همان آدرس VP را برای چند ابزار مجزا (مثلاً یک Artistic Variable برای نمایش عددی و یک Icon Variable برای نمایش آیکون وضعیت) تعریف کنی. DGUS هر بار که آدرس بهروز شود، تمام ابزارهای مرتبط با آن VP را همزمان رندر میکند. تداخل آدرس VP بین ابزارهای غیرمرتبط را کنترل کن. - چرا مقدار نمایشدادهشده با مقدار واقعی سنسور اختلاف مقیاس دارد؟
پارامترهای Integer Part و Decimal Part در تنظیمات Artistic Variable تعداد ارقام صحیح و اعشار را مشخص میکنند. اگر میکروکنترلر مقدار را بدون مقیاسگذاری ارسال کند (مثلاً ADC خام)، باید ضریب تبدیل را در سمت میکروکنترلر اعمال کنی یا از قابلیت VP Adjust در DGUS استفاده کنی. - حداکثر تعداد Artistic Variable قابل تعریف در یک پروژه DGUS چقدر است و روی پرفورمنس تأثیر میگذارد؟
محدودیت سخت تعداد ابزار به مدل سختافزار DWIN بستگی دارد، اما هر ابزار اضافه زمان رفرش فریم را افزایش میدهد. در صفحات با دادههای متغیر زیاد، نرخ بهروزرسانی سریال را با توجه به baudrate و تعداد VP بهروزرسانی هر سیکل تنظیم کن تا صفحه دچار تاخیر رندر نشود. - چطور مطمئن شوم فایل پیکربندی ابزار قبل از فلش روی ماژول، خطایی ندارد؟
از منوی File → Check در DGUS IDE استفاده کن. خطاهای آدرسدهی تکراری VP، خارج از محدوده بودن مقادیر پارامتر و ارجاع به فایل گرافیکی ناموجود در این مرحله گزارش میشوند. پس از تأیید، فایل 13TouchFile.bin و 14ShowFile.bin تولید شده را بررسی و سپس روی SD کارت کپی کن.