موضوع مقاله : معرفی پروتوکل CANopen و راه اندازی ماژول FATEK FBs-CBCAN
چکیده مقاله:
پروتكل ارتباطي CAN، براي اولين بار توسط شركت بوش برای خودروها طراحي و در اواخر دهه 80 به بازار عرضه شد و بوسیله خودروسازان اروپايي و سپس امريكايي مورد استفاده قرار گرفت . این پروتوکل در سال 1993 توسط سازمان استاندارد جهاني تحت استاندارد 11898 ISO مورد پذيرش قرار گرفت و پس از آن نیز در اتوماسیون صنعتی ، صنعت خودرو و حمل و نقل جاده ای ، ماشین آلات کشاورزی و راهسازی توسعه یافت. نسخه ای از آن که در اتوماسیون صنعتی توسعه یافته است امروزه به نام CANOpen شناخته می شود و جايگاه ویژه ای دراتوماسیون صنعتی پيدا كرده است .این شبکه متشکل از یک باس سریال تفاضلی می باشد که قسمتهای مختلف سیستم را به هم متصل می کند.
پروتوکل(Control Area Network) CAN :
از دیدگاه مدل OSI و مطابق شکل زیر ، پروتوکل CAN بر اساس لایه های 1و 2 تعریف شده است اما بدلیل محدودیتهای این تعریف در پروتوکل CANOpen لایه هفت نیز اضافه شد .
در حقیقت شبکه CAN ارتباطی سریال و دوسیمه مبتنی بر استانداردRS–485 است که تا 128حسگر و دستگاه مختلف را به یکدیگر متصل می نماید. این شبكه بر پایه ارسال و دریافت پیامها کارمی کند بدین ترتیب که پیامها توسط حسگرها و ادوات کنترلی در شبکه جاري شده و گيرندهها با دریافت پيام مرتبط با خود عمليات مورد نظر را انجام ميدهند. کاهش قابل توجه در سیم کشی ، انعطاف پذیری ، قابلیت اطمینان بالا ،اولویت بندی پیامها و امکانات مناسب برای عیب یابی از جمله مزایای این پروتوکل می باشد.
انتقال اطلاعات در این پروتوکل بوسیله یک جفت سیم و بصورت دیفرانسیلی می باشدکه اثر نویز را به حداقل می رساند. طول شبکه تا 1000متر و سرعت انتقال اطلاعات در این پروتوکل می تواند تا 1Mbps (در مسافت 50 متر) باشد .
- اصول تبادل اطلاعات در شبكههاي CAN
در شبكه CAN، براي ارسال دادهها به يك گره یا دستگاه ، آدرسدهي مشخصي صورت نميگيرد بلكه محتواي پيام ارسالي به همراه اولويت آن، توسط شناسهاي اختصاصي در شبكه مشخص ميشود. اين موضوع هنگامي اهميت دارد كه دستگاههاي مختلف نياز به دسترسي همزمان به شبكه داشته باشند. براي ارسال پيام، دادهها به همراه شناسه از طريق مبدلهاي CAN براي ارسال آماده شده و به محض آزاد شدن شبکه ، ارسال به تمام گرهها انجام ميشود. دستگاههای دیگر (كه اكنون در وضعيت گيرنده قرار دارند) پيام را بررسي كرده و در صورتي كه به آنها مربوط باشد، آن را ميپذيرند. افزودن گرههاي جديد به سادگي امكانپذير بوده و نياز به تغيير سختافزاري چنداني ندارد. CAN پروتوکلی Multi master می باشد به این معنا که هر تجهیزی که به این شبکه متصل شود ، می تواند هم بعنوان فرستنده و هم بعنوان گیرنده اطلاعات کار کند و در زمان های لازم اختیار شبکه را در دست بگیرد مگر اینکه پیامی با اولویت بالاتر از سوی تجهیز دیگری صادر شود .
- ویژگی ها :
- پرسرعت تا 1Mbps
- قابلیت اولویت بندی پیام ها، مناسب برای طراحی سیستم بلادرنگ )پیام با شماره ID پایین تر دارای اولویت بالاتر است(
- باس 2 سیمه تفاضلی
- ایمنی بسیار زیاد در برابر نویز
- قابلیت خطایابی، کنترل و رفع خطا )در مواقع تداخل و ( …
- استاندارد ISO 11898 در لایه Data link و قسمت هایی از لایه فیزیکی
- برای پیاده سازی، هر Node به موارد زیر نیاز دارد :
- Host processor
پردازنده تصمیم می گیرد که هر پیام دریافتی چه معنایی دارد و با توجه به پیام چه عملی باید صورت گیرد. همینطور وظیفه تصمیم گیری در مورد پیام هایی که باید ارسال شوند به عهده این قسمت است. کاربر با برنامه نویسی پردازنده، سیستم مورد نظر را کنترل میکند.
- CAN controller
وظیفه دریافت : CAN controller بیت ها را بصورت سریال از باس دریافت می کند تا یک پیام کامل فراهم شود. سپس پیام به Host processor منتقل می شود.
وظیفه ارسال : Host processor بیت های ارسالی را در CAN controller ذخیره می کند تا پیام را بشکل سریال ارسال کند.
- Transceiver
وظیفه تبدیل سطوح سیگنال بین باس و CAN controller را به عهده دارد. باس ایجاد شده توسط Transceiver یک باس دو سیمه تفاضلی است. سیگنال های این باس CAN_H و CAN_L نام دارند.
- پروتوکل CANopen
این پروتوکل نسخه ای از CAN است که در اتوماسیون صنعتی توسعه یافته است و از مطابق شکل زیر سه بخش واسط ارتباطی ، Object Dictionary و واسط سخت افزار است.
- COB-ID :
هر پیام CANOpen دارای این شناسه است که نشان دهنده شماره Node و نوع پیام می باشد. پیام هایی که از نوع NMT service ، SYNC و TIME STAMP می باشند دارای COB–ID ثابت هستند . جدول زیر انواع پیامها و COB-ID آنها را نشان می دهد.
- انواع پیامها در CANOpen:
پیامهای PDO و SDO:
به دو روش می توان پیام های حاوی اطلاعات را از یک Node به Node دیگر فرستاد یا دریافت نمود:
- SDO(Service Data Object)
- PDO(Process Data Object)
- پیام SDO :
این نوع پیام برای ارسال تنظیمات دستگاه و خواندن یا نوشتن Object Dictionary ها استفاده می شود.
در شکل زیر، چگونگی ارسال و دریافت پیام SDO در شبکه نشان داده شده است:
آدرس رجیسترها در پیام SDO با Index و Subindex مشخص می شوند. رجیستر Index رجیستری 16 بیتی و Subindex رجیستری 8 بیتی می باشد. در شکل زیر فریم SDO مربوط به درخواست اطلاعات آمده است.
- پیام PDO :
این پیام برای تبادل اطلاعات بصورت Real time استفاده می شود. در فریمهای این پیام می توان 8 بایت را جابجا کرد. این نوع پیام به صورت Producer/Consumer ارسال می شود بدین معنی که پیام فقط توسط یک عضو شبکه ارسال می شود ولی چندین عضو می توانند آن را دریافت نمایند.(شکل زیر)
این پیام به دو دسته RPDO و TPDO تقسیم می شود که در آن RPDO ها برای دریافت اطلاعات از شبکه و TPDO ها برای ارسال اطلاعات به شبکه می باشند. پیام PDO قابلیت ارسال اطلاعات بدون درخواست از Client های دیگر را داراست.
پیامهای PDO در چند حالت فرستاده می شوند :
- Async : ارسال بر اساس تغییر مقدار رجیستر یا بطور دوره ایی بعد از گذشت زمانی معلوم
- sync : ارسال با تغییر وضعیت ماژولها و پس از دریافت پیغام SYNC
- Etime+Sync : ارسال پس از دریافت پیغام SYNC
- Cyclic : ارسال بطور دوره ایی و بعد از گذشت زمان معلوم
- پیکربندی شبکه CANOpen در FATEK PLC :
بورد FBs-CBCAN برای اتصال FATEK PLC به شبکه CANOpen می باشد. این ماژول پورتهای 1 و 2 را اشغال نموده و بر روی همه واحدهای اصلی مدلهای سری FBs قابل نصب می باشد. جدول مشخصات و نحوه نصب برروی PLC در زیر آمده است.
نحوه تنظیم ماژول CAN ، بوسیله نرم افزار Easy can opener می باشد . این نرم افزار از طریق پورتهای سریال مربوط به PLC می تواند ماژول مورد نظر را تنظیم کند.
- دریافت پیام ها :
برای دریافت اطلاعات در کل می توان چهار فریم ایجاد کرد که هر فریم دارای یک COB ID و حداکثر 4 رجیستر 16 بیتی می باشد. مقادیر رجیسترهای دریافت شده در رجیسترهای R3640 ~ R3655 ذخیره می شوند.
به دو صورت می توان فریم پیام ها را تشکیل داد :
- By Role : تعیین COB ID با انتخاب چند پارامتر
- By Value : تعیین COB ID بطور مستقیم
اولویتها توسط COB ID تعیین می شوند و می تواند عددی بین 180 ~ 57F هگز باشد. هر چقدر این عدد کوچکتر باشد اولویت بالاتر می باشد. بدین ترتیب اولویت با MASTER و نیز دارای PDO NO کوچکتر می باشد.
- ارسال پیام ها :
برای ارسال اطلاعات نیز در کل می توان چهار فریم ایجاد کرد که هر فریم دارای یک COB ID و حداکثر 4 رجیستر 16 بیتی می باشد. این فریم ها مقادیر رجیسترهای R3600 ~ R3615 را ارسال می کنند. در فریم های ارسالی پارامتر Transmission Type باید متناسب با نیاز تنظیم شود .
- رجیسترهای خاص برای پورت CAN
مثال : می خواهیم از طریق پورت CAN و با استفاده از PDO ، چهار رجیستر 16 بیتی از PLC 1 را بهPLC 2 ارسال کنیم.
مطابق شکل بالا بعد از اتصال پورتهای CAN دو PLC به یکدیگر، با استفاده از نرم افزار CBCAN Configurator و انتخاب گزینه Module Configuration ، تنظیمات هر دو PLC را انجام می دهیم.
در شکل بالا می بینیم که COB-ID هر دو PLC گیرنده و فرستنده با یکدیگر برابر می باشند.
- خواندن یا نوشتن رجیسترهای تجهیزات (Object Dictionary) از طریق سرویس SDO :
رجیسترهای تجهیزات با پارامترهای Index , Sub-index آدرس دهی می شوند. برای استفاده از سرویس SDO در FATEK PLC رجیسترهای خاص R3700~R3769 استفاده می شود. توضیحات مربوط به این رجیسترها در جدول زیر آمده است.
بعد از اجرای سرویس SDO ، رجیسترها مطابق جدول زیر عمل می کنند :
در صورتی که R3700=4 باشد، کد خطا مطابق جدول زیر در رجیسترهای R3706 , R3707 نشان داده می شود.
در صورتی که R3700=4 باشد، کد خطا مطابق جدول زیر در رجیسترهای R3706 , R3707 نشان داده می شود.