رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
استفاده از recipe 32 بیتی
#1
سلام
من یه راهنمایی یا برنامه نوشته شده برای یاد گیریی استفاده از داده های recipe های 32 بیتی در plc دلتا میخواستم
ممنون میشم اگه کمکم کنید
پاسخ
سپاس شده توسط:
#2
استفاده از داده های 32 بیتی تقریبا مشابه حافظه های 16 بیتی است .
ولی تعداد بیت های اشغال شده توسط آنها دو برابر حالت 16 بیتی است .
مثلا وقتی شما از حافظه D0 استفاده می کنید برای حافظه ی بعدی از D2 استفاده خواهید کرد .
این عدد برای حالت 32 بیتی ، D4 خواهد شد .
بیشتر دستورات نیز تغییری زیادی در ساختار نخواهند داشت .
مثلا شما وقتی قصد دارید یک حافظه ی Word را منتقل کنید از دستور Move استفاده می کنید .
برای حالت Doble Word یا 32 بیتی این دستور به صورت DMove استفاده می شود .
پاسخ
سپاس شده توسط:
#3
با تشکر از توضیح خوبتون
اعداد مورد استفاده من در جدول recipe همه در رنج 0 تا 120 هستند ولی بدلیل زیاد بودن تعدادشون مجبورم از recipe های 32 بیتی استفاده کنم اگرچه محدودیت حداکثر 50 مگ فایل اونهم مشکل سازه.
میخوام بدونم که با اینکه اعداد من همه کمتر از 128 هستند وقتی از نوع 32 بیتی استفاده میکنم باز هم 4 تا از حافظه D  استفاده میشه ؟
در مورد  روش انتقال اطلاعات recipe از HMI به حافظه plc هم توضیح بفرمایین ممنون میشم.
پاسخ
سپاس شده توسط:
#4
اگر شما برای انتقال از دستورات 32 بیتی یا دابل استفاده کنید بله ، 2 تا D اشغال خواهد شد ، ولی ممکن است تعدادی از آنها خالی باشد .
چون مثلا ما هم در 16 بیتی عدد یک داریم و هم در 32 بیتی عدد یک داریم .
از نظر مقدار این دو با هم برابرند . ولی از نظر حافظه خیر .
شما وقتی از طریق HMI یک مقدار 32 بیتی را در یک حافظه مثلا D0 می ریزید . کافیست در PLC ان مقدار را DMOV کنید در یک حافظه ی دیگر .
باید در نظر داشته باشید که تا  یک شماره D پس از آن را باید خالی بگذارید . وگرنه مقادیر شما به هم خواهد خورد .
پاسخ
سپاس شده توسط:
#5
سلام
ببخشید مگه حافظه های D یک word یعنی 16 بیتی نیستند پس وقتی ما از 32 بیتی استفاده میکنیم باید دو تا حافظه D مصرف بشه نه 4 تا درست میگم؟
پاسخ
سپاس شده توسط:
#6
بله درست است . اشتباه شد .
هر عدد 32 بیتی در دو D جای میگیرد که می شود 4 بایت . از آنجایی که هر D خود شامل دو باید است . پس می شود دو شماره D .
شما لازم نیست عدد را در دو حافظه پشت سر هم بریزید . اینکه عدد 32 بیتی رو در یک حافظه می ریزید . نصب عدد خود به خود در حافظه بعدی ریخته می شود .

این حالت در یکی از حافظه های تصویر زیر رعایت نشده است و کاملا قابل مشاهده است .


فایل‌های پیوست تصاویر بندانگشتی
   

.dvp   16&32 bit in WPLSOFT.dvp (اندازه 178.04 KB / تعداد دانلود: 10)
پاسخ
سپاس شده توسط:
#7
با تشکر از توضیح کاملتون.
ایا دستوری هست که بتوان بدون محاسبات ریاضی یا تبدیل ، بایت پر ارزش یا کم ارزش یک Word شانزده بیتی را مستقیم بدست آورد؟
پاسخ
سپاس شده توسط:
#8
مهندس جان من  چک کردم . متاسفانه دستوری در این زمینه پیدا نکردم .
دستورات همگی برای حافظه D که 16 بیتی است تعریف شده .
البته دستور است که مثلا یه تعداد بیت را ذخیره کند .
ولی نمی توان به ان حافظه D را داد .
پاسخ
سپاس شده توسط:
#9
(17-12-2014، 03:02 PM)admin نوشته: بله درست است . اشتباه شد .
هر عدد 32 بیتی در دو D جای میگیرد که می شود 4 بایت . از آنجایی که هر D خود شامل دو باید است . پس می شود دو شماره D .
شما لازم نیست عدد را در دو حافظه پشت سر هم بریزید . اینکه عدد 32 بیتی رو در یک حافظه می ریزید . نصب عدد خود به خود در حافظه بعدی ریخته می شود .

این حالت در یکی از حافظه های تصویر زیر رعایت نشده است و کاملا قابل مشاهده است .

سلام پس اگر خانه های حافظه رو درست هماهنگ نکنیم با این ارور منفی -2066... مواجه میشیم که نشون از اشکال کار میده دیگه درست متوجه شدم؟
یعنی درست ارنج نکردیم ؟
پاسخ
سپاس شده توسط:
#10
یک سوال دیگه از کجا می فهمیم که این 32000 شما 16 بیت جا میخواد یا 32 بیت؟
پاسخ
سپاس شده توسط:


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان