تکنو کلید

وارد کننده و توزیع کننده اتوماسیون صنعتی زیمنس

آموزش برنامه نویسی Master-Slave با کارت CP توسط نمایندگی زیمنس

آموزش برنامه نویسی Master-Slave با کارت CP توسط نمایندگی زیمنس
همانطور که در آموزش های نمایندگی زیمنس گفته شد در هنگام پیکربندی کارت CP به عنوان Master وقتی خط DP را با Add Master System فعال می‌کنیم با پیغامی مواجه می‌شویم این پیغام تاکید می‌کند که در برنامه نویسی لازم است از فانکشن‌های خاص FC1 و FC2 استفاده کرد.
این فانکشن‌ها در کتابخانه محیط برنامه‌نویسی در زیرمجموعه SIMATIC-NET-CP قرار دارند و برای S7-400 و S7-300 نیز متفاوت هستند. مسیر دسترسی به فانکشن‌های FC1 و FC2 برای کارت‌های شبکه S7-300 در نرم افزار STEP7 نشان داده شده است.
 
 
مسیر دسترسی به فانکشن‌های FC1 و FC2 در نرم افزار STEP7 زیمنس
 
 
با توجه به اسامی این فانکشن‌ها عملکرد آن‌ها مشخص است:
  • FC1 یا DP-SEND برای ارسال فرامین به خروجی SLAVEهای متصل به شبکه کارت CP به کار می‌رود.
  • FC2 یا DP_RECV برای خواندن ورودی SLAVEهای متصل به شبکه کارت CP به کار می‌رود.
 

نکات مهم در کاربرد FC1 و FC2

استفاده از FC1 و FC2 در برنامه نویسی دارای نکاتی است از جمله:
  1. با استفاده از FC1 و FC2 ورودی‌های آنالوگ و دیجیتال را می‌توان به صورت یکجا خواند و امکان تفکیک آن‌ها مانند حالتی که وسایل به پورت DP متصل هستند وجود ندارد. به عنوان مثال اگر از 10 عدد ET روی شبکه استفاده کرده باشیم FC2 اطلاعات همه ET ها را به صورت یکجا با هم می‌‌خواند.
  2. با استفاده از FC1 و FC2 امکان ارسال فرمان به صورت جداگانه به کارت‌های خروجی روی ETها وجود ندارد. در این حالت باید فرمان‌ها را آماده کرد و به صورت همزمان با FC1 ارسال کرد.
  3. با استفاده از FC1 و FC2 حداکثر 240 بایت از .ورودی‌ها را می‌توان خواند و یا به 240 بایت از خروجی‌ها فرمان داد. در ورژن‌های جدید STEP 7 با چند بار فراخوانی FC1 و FC2 می‌توان تا 2160 بایت را دریافت و یا ارسال کرد.
 

ورودی‌های FC1 و FC2

 

ورودی CPLADDR

به این ورودی آدرس بیس کارت شبکه پروفی‌باس که در HW CONFIG مشخص شده داده می‌شود و فرمت آن به صورت هگز است. به عنوان مثال اگر آدرس کارت CP 342-5 در HW CONFIG از عدد 256 شروع شود به این ورودی عدد W#16#100 داده می‌شود.
 

ورودی SEND

آدرس حافظه‌ای که دیتا از آنجا  به خروجی‌های SLAVE ها ارسال می‌شود به این ورودی داده می‌شود از آنجا که حجم دیتا ممکن است بیشتر 4 بایت باشد آدرس به صورت Pointeer وارد می‌شود. موارد زیر نمونه‌هایی از آدرس دهی pointer را نشان می‌دهد:
P#m0.0 Byte 100
P#DB1.DBX0.0 Byte 240
 
 
طول دیتا که در این روش در انتها ذکر می‌شود باید متناسب با آدرس‌های خروجی SLAVEهای باشد در غیر اینصورت با خطا مواجه می‌شویم. بدیهی است در این شرایط MB0 به اولین بایت خروجی متقل و سایر بایت‌ها نیز به ترتیب انتقال می‌یابند تا MB9 به بایت نهم خروجی منتقل می‌شود.
 

خروجی‌های FC1 و FC2

 

خروجی DONE

این خروجی از جنس Boo1 است و گزارش عمل ارسال را نشان می‌دهد. اگر ارسال موفقیت آمیز باشد این خروجی یک شود. در ارسال موفقیت آمیز این خروجی ابتدا صفر است که به مفهوم در حال ارسال می‌باشد پس از تکمیل ارسال خروجی DONE یک می‌شود.
 

خروجی ERROR

این خروجی از جنس Boo1 است و اگر یک شود نشان می‌دهد که ارسال موفقیت آمیز نبوده است. این خروجی نیز درشرایط بروز اشکال مشابه خروجی DONE مرتبا صفر و یک می‌شود.