وقتی داخل فانکشن بلاک متغیر هایی از نوع استاتیک میسازم، هنگام فراخوانی با آدرس های عجیبی رو به رو میشم که با ‘DI’ شروع میشن. مثلا DID یا DIX. میخواستم بدونم اگر آدرسی با این فرمت در فانکشن بلاک استفاده کنیم، آیا بعدا میتونیم اون فانکشن بلاک رو به صورتِ مولتی اینستنس فراخوانی کنیم؟ (داخل عکس های پایین با مربع قرمز این آدرس ها رو نشون دادم)
سلام
نام ديتا بلاكى كه براى فانكشن بلاكـ ساخته شده چى هست؟
برای اینکه بتوان به یک عنصر داده از طریق چندین عنصر داده دسترسی داشت، ابتدا باید DB با دستورالعمل های OPN DB یا OPN DI باز شود. سپس چندینdata bits (DBX/DIX)، (DBB/DIB) data bytes،data words (DBW/DIW) یا double data words (DBD/DID) در عملیات دیجیتال یا باینری قابل پردازش هستند.
پاسختون نشان دهنده تخصص بالای شماست.
ولی متاسفانه بنده متوجه درست مطلب نشدم!
امکانش هست لطف بفرمایید و با جزئیات بیشتری توضیخ بدین؟
سپاسگزارم🙏
سلام عزیزم
نه عزیزم نمیتونید جای دیگه استفاده کنید
اول ازتون تشکر میکنم چون بستر سایت پاور لند ارتباط مستقیمی بین ما و شما مهندس دوستداشتنی هست، واقعا ممنون بابت چنین ابتکار زیبایی. چند وقت بعد اینجا تبدیل میشه به فروم زیمنس برای مهندسین ایرانی!
بریم سراغ سوال، وقتی از آدرس هایی مثلِ DIX4.0 استفاده میکنم و هر فانکشن رو به صورت مستقیم در OB1 فراخوانی میکنم و به هر فانکشن یک دیتا بلاک غیر تکراری میدم، فانکشن درست کار میکنه اما زمانی که میخوام فانکشن رو به صورتِ مولتی اینستنس در بیارم یعنی برای همه چندین فانکشن تکراری از یک دیتابلاک استفاده کنم، فانکشنی که اول فراخوانی شده درست کار میکنه اما فانکشن های بعدی نه!
ممنونم.
درود ميتونيد از UDT استفاده بفرماييد براى اين مسئله
اها متوجه شدم، اره این یک محدودیت هست که نمیشه از مالتی اینطوری استفاده کنید، یعنی نباید توی OB پشت به پشت ازش کال بگیری
باید کالهات تو خود FB بشه، یعنی مدل تو در تو بهش میگن Nesting depth – هر چی داری بذار داخل یه FB بعد اخر سر اونو تو OB کال کن