مقدمه هدف از این پروژه طراحی و ساخت PLC ساده ای توسط میکروکنترلر 80C196 است پس جا دارد آشنایی کلی با PLC پیدا کنیم.
PLC از عبارت Programmable Logic Controller گرفته شده است و همانطور که از این عبارت استنباط می شود، کنترل کننده نرم افزاری است که ورودی های آن اطلاعات را به صورت دیجیتال یا آنالوگ دریافت می کند و پس از پردازش فرمانهای مورد نظر به محرکها ارسال می شود.
البته در نظر داشته باشید آنچه که وارد بخش پردازش مرکزی می شود اطلاعات دیجیتال است، یعنی اگر ورودی ها آنالوگ باشند با گذر از A/D، معادل دیجیتال آنها وارد واحد پردازش مرکزی می شود.
در یک سیستم PLC ورودی ها و خروجی ها هیچ ارتباط فیزیکی با هم ندارند.
به بیان سادهتر PLC نقش یک واسطه را بازی می کند.
بخشهای مختلف PLC شامل منبع تغذیه، واحد پردازش مرکزی، واحد ورودی، واحد خروجی و واحد برنامه ریز (PG) میباشد.
سادگی ایجاد تغییرات و توانایی گسترده یک سیستم اتوماسیون صنعتی که در آن PLC به عنوان کنترل کننده مرکزی به کار گرفته شده است به طراحان ماشین این امکان را می دهد آنچه را در ذهن دارند در اسرع وقت بیازمانید و به ارتقای کیفیت محصول تولیدی خود بپردازند.
کاری که در سیستم های قدیمی معادل صرف هزینه و بخصوص زمان بود؛ بطوریکه باعث می شد هیچگاه ایده های نو به مرحله عمل در نیاید، به راحتی در این نوع سیستم قابل اجراست.
در بخشهای بعدی ضمن نگاهی به تاریخچه PLC، به مقایسه PLC با سایر سیستم های کنترل و انواع آن و بررسی عملکرد اجزاء PLC می پردازیم.
1-1) تاریخچه PLC نخستین گامها برای ساخت و استفاده از PLC در اواخر دهه 1960 و اوایل دهه 1970 میلادی برداشته شد.
شرکت Bedford Association که بعد به نام Modicon تغییر نام داد و همزمان با آن شرکت Allen-Bradly که در سال 1969 اولین PLC را عرضه کردند را می توان پیشگامان ارایه PLC دانست.
اولین نمونه های PLC به ورودی خروجی های دیجیتال و دستورات منطقی ساده اکتفا کردهبودند.
بتدریج نمونههای کاملتری عرضهشدند که تعداد ورودی خروجیهای بیشتری دارا بودند.
قابلیت ورودی و خروجی آنالوگ داشتند و از دستورات پیچیدهتری بهره می بردند.
قوم های بعدی امکان تشکیل شبکه ای از PLCهای کوچک برای کنترل پروسه های بزرگ و به کارگیری کارت های کنترل کننده PID، Communication و… را فراهم ساخت.
1-2) قابلیتها و امکانات مورد نیاز PLC از آنجا که PLC ها اصولاً برای سیستم های صنعتی طراحی شده اند و باید توان جایگزینی سیستم های قدیمی را دارا باشند، باید امکانات و قابلیت هایی که در مورد PLC در نظر گرفته شود.
در این بخش به این موارد اشاره کرده و در جای خود به توضیحات بیشتر می پردازیم.
1-2-1) ایمنی نسبت به نویز محیط صنعتی بدلیل وجود دستگاههای مختلف که با ولتاژها و جریانهای بالا کار می کنند و بر محیط اطراف خود تاثیرات الکترومغناطیسی گسترده ای می گذارند، محیطی آلوده به نویز است.
بدیهی است برای آنکه PLC قادر به کارکردن در این محیط باشد نیاز به ایمن سازی نسبت به این نویزها دارد.
1-2-2) ساختار قابل گسترش چنانچه اشاره شد PLC یک سیستم عمومی است که انتظار می رود از عهده کنترل سیستم های مختلف بر آید.
ساختار قابل گسترش این امکان را فراهم می آورد که کم و زیاد کردن واحدهای ورودی وخروجی با قابلیت های گوناگون و ایجاد تغییرات و انعطاف در برابر سیستم های مختلف بسادگی امکان پذیر باشد.
در PLCهای جدید می توان به راحتی و با هزینه مناسب نسبت به کار خواسته شده واحدهای مختلف از قبیل Analog I/O و… را به سیستم اضافه کرد.
1-2-3) سطوح سیگنال و اتصالات ورودی- خروجی استاندارد ساختمان مدولار PLC و امکان گسارش و اضافه کردن مدولهای مختلف نیاز به یک استاندارد برای سطح ولتاژ و اتصالات را می طلبد تا واحدهای مختلف بهنگام اتصال به یکدیگر مشکلی بوجود نیاورده و با هم سازگار باشند.
1-2-4) ایزولاسیون از آنجا که سیگنالهای ورودی و دستگاههای خروجی از ولتاژ و جریانهای به مراتب بالاتر از جریان و ولتاژ مدارهای دیجیتال برخوردارند.
برای آنکه این ولتاژها و جریانها روی قسمت های دیجیتال مدار تاثیر نداشته باشند و باعث آسیب دیدن سیستم نشوند، باید به نوعی جداسازی این دو بخش انجام شود.
این عمل معمولاً توسط اپتوکوپلر و رله های در ورودی خروجی ها انجام می گیرد.
بدین ترتیب ارتباط الکتریکی ورودی خروجی از مدار دیجیتال قطع شده و ایزولاسیون مناسبی صورت خواهد گرفت.
1-2-5) سهولت برنامه ریزی و تغییر برنامه PLC در محیط صنعتی یکی از مزایای سیستم صنعتی مناسب، سهولت برنامه ریزی و قابلیت انعطافپذیری فوق العاده آن می باشد بطبع این امکان باید در PLC بعنوان سیستمی فراگیر در صنعت پیش بینی شده باشد.
برای این منظور از کامپیوتر شخصی یا برنامه ریز مخصوص (PG) استفاده می شود.
1-2-6) سهولت و سادگی زبان برنامه نویسی یکی از اهداف طراحان PLC قابلیت برنامه ریزی PLC توسط افرادی غیر متخصص با معلوماتی در حد تکنسین ها است.
برای تامین این هدف، زبانهای PLC بسیار ساده، قابل فهم و منطبق با نیازهای صنعتی و مدارات فرمان در نظر گرفته شدهاند که در مدت بسیار کوتاهی قابل یادگیری می باشند.
3- بخش سخت افزار بخش سخت افزار پروژه را می توان به پنج قسمت تقسیم کرد: 1- برد اصلی 2- برد digital input 3- برد digital output 4- back plain 5- برد Power 1-3) برد اصلی 1-1-3) بخش اصلی برد مرکزی میکروکنترلر 80196 می باشد.
این میکرو بدلیل توانایی های زیاد و نیز سرعت بالا در پردازش اطلاعات به عنوان میکروکنترلر مرکزی انتخاب شده است.
80C196 یک میکروکنترلر 16 بیتی از خانواده MCS-96 است که عملیات داخلی آن با تکنولوژی CHMOS انجام می گیرد.
حال نگاهی کلی به توانایی های میکروکنترلر 80C196 می اندازیم: * توانایی کار در دمای محیط 40- تا 125 درجه سانتیگراد * 232 بایت RAM داخلی در نوع KB و 488 بایت در نوع KC * 8 کیلو بایت ROM داخلی در 83C196KB * 16 کیلوبایت ROM داخلی در 83C196KC و 87C196KC * انجام عملیات داخلی با تکنولوژی CHMOS با راندمان بالا و تلفات توان ناچیز * عملیات داخلی با ساختار رجیستر به رجیستر * مبدل A/D همراه با Sample & Hold در نوع KB: بیتی 10 در نوع KC: تبدیل به دو صورت 10 بیتی و 8 بیتی با امکان تعیین سرعت تبدیل * پنج پورت 8 بیتی به عنوان I/O * 28 مرجع وقفه * قابلیت PTS فقط در نوع KC * خروجیهای PWM: در نوع KB: یک خروجی PWM در نوع KC: سه خروجی PWM * حالت های Power Down و Idle برای کاهش توان مصرفی میکروکنترلر * پایه های ورودی و خروجی با سرعت بالا (HSO, HIS) * قابلیت تغییر پهنای Bus بین 8 و 16بیت به صورت دینامیک * پورت سریال Foll Duplex * مولد اختصاصی Baud Rate برای پورت سریال (دقت بالا) * ضرب دو عدد 16 بیتی در مدت زمان: در نوع KB: 725/1 میکروثانیه (با کریستال 16 MHZ) در نوع KC: 4/1 میکروثانیه (با کریستال 20 MHZ) * تقسیم یک عدد 32 بیتی به یک عدد 16 بیتی در مدت زمان: در نوع KB: 3 میکرو ثانیه (با کریستال 16 MHZ) در نوع KC: 4/2 میکروثانیه (با کریستال 20 MHZ) * تایمر 16 بیتی به عنوان TIMER 1 * شمارنده صعودی/ نزولی 16 بیتی با قابلیت Capture * 4 تایمر نرم افزاری 16 بیتی * پروتکل اشتراک باس HOLD/HOLDA * توانایی کار با کریستالهای 3.5 Mhz تا 16 Mhz این میکروکنترلر در سه نوع بسته بندی زیر ساخته شده است: PLCC با 68 پایه QFP با 80 پایه SQFP با 80 پایه SQFP با 80 پایه که در این پروژه از ساختار PLCC استفاده شده است.
2-1-3) توضیحی در مورد نحوه اتصالات پایه های میکروز همانطور که در شکل شماره 1 نیز مشاهده می نمائید: پایه های شماره 4،5،6و7 که مربوط به پورت صفر میکرو هستند به عنوان ورودی A/D انتخاب شده اند.
پایه های 24 و 25 به ترتیب به عنوان پایه های HSI.0 و HSI.1 انتخاب شده است.
پایه های 26-27-28-29-34 و 35 به عنوان پایه های HSO انتخاب شده اند.
پایه های شماره 8 و 38 به ترتیب به عنوان RTS و CTS برای ارتباطات سریال انتخاب شده اند.
پایه های شماره 10-33و20 به ترتیب به عنوان ورودی از E2PROM سریال، خروجی به E2PROM سریال و CIK به E2PROM سریال انتخاب شده اند.
پایه های شماره 22،23 و 39 به عنوان خروجی PWM انتخاب شده اند.
پایه های 11و21و30و31 به ترتیب به عنوان IREQ، IORESET، IORW و STB انتخاب شده اند.
پایه شماره 62 که ALE می باشد جهت Enable کردن Latchهای آدرس متصل به میکرو انتخاب شده است.
پایه شماره 64 که Bus Width است جهت انتخاب باس 8 تایی زمین شده است.
پایه های شماره 45 تا 60 که مربوط به پورت 3و4 هستند جهت باس انتخاب شدهاند.
در مدار از کریستال 16 Mhz استفاده شده است.
3-1-3) بخش حفاظت و ولتاژ مرجع A/D میکرو بنا به نظر شرکت سازنده میکرو برای محافظت قسمت A/D میکروکنترلر باید مداری مانند مشکل شماره 2 بسته شود این مدار باعث می شود ولتاژ ورودی A/D کنتر از ANGND و بیشتر از UREF نگردد.
برای ولتاژ مرجع A/D از LM336 استفاده شده است که خروجی مدار ولتاژ مرجع 5 ولت می باشد.
4-1-3) بخش RESET میکرو از IC، TL7705 جهت مدار ریست میکرو استفاده شده است.
که این IC هم بوسیله کلید دستی ریست را فعال می کند و هم با کاهش ولتاژ از حد معینی باعث ریست شدن میکرو می گردد.
با رسیدن ولتاژ میکرو به 4.6v این IC فعال می گردد و منیکرو را ریست می کند.
از IC، 74HC14 جهت تیز کردن لبه های آن استفاده شده است.
دیود 1N4148, D8 جهت OR بکار می رود در این صورت علاوه بر ریست خارجی ریست نرم افزاری داخلی نیز می تواند عمل کند.
5-1-3) بخش ویکور آدرس این بخش شامل دو Latch آدرس است که مستقیماً به Adress باس میکرو متصل شده است که جهت Latch و نگهداری آدرس بکار می رود که بوسیله ALE میکروکنترلر فعال می گردند.
از PAL22v40 جهت decoder آدرس استفاده شده است که برای انتخاب EPROM وRAM6264 وRTC48TO8 و Adress Out، DATAIN، DATAOUT، که Output PAL هستند و ورودی خط های آدرس و RD و WR هستند.
که شمای آن در شکل زیر است.
6-1-3) بخش RAMها و EPROM این بخش شامل دو RAM است که هر کدام 8 کیلو ظرفیت دارند و یک EPROM که 27C512 می باشد که 64K حافظه دارد ولی در این پروژه از 48K آن استفاده میشود.
یکی از RAMها 48TO8 است که کریستال و باتری backup داخلی دارد و هشت بیت انتهائی آن اطلاعات مربوط به تاریخ و زمان را شامل می شود.
48K ابتدائی حافظه مربوط به EPROM است و 8K حافظه بین 48 تا 56 مربوط به 48TO8 است و 8K انتهائی RAM مربوط به 6264 است.
7-1-3) بخش Data Out/In این بخش شامل بافر دو طرفه 74HC245 است که جهت آن توسط پایه شماره 19 میکروکنترلر تعیین می گردد.
هنگام نوشتن اطلاعات در خروجی مقدار آن صفر و هنگام خواندن اطلاعات از خروجی مقدار آن 1 است.
برای data out از 74HC574 استفاده شده است که CIK آن از Pal می آید.
برای data in از بافر 74HC541 استفاده شده است که از سوی Pal فعال می شود.
8-1-3) بخش E2PROM Senal این بخش شامل حافظه E2PROM سریال 93C46 است که دارای 1K بیت حافظه (256 بایت) E2PROM است.
که دستورالعمل های مخصوص به خود را دارا می باشد که در بخش ضمیمه توضیحات مربوطه آمده است.
این حافظه مستقیماً به وسیله میکرو فعال نوشته و خوانده می شود.
9-1-3) بخش ارتباط سریال این بخش شامل ارتباط سریال RS232 و پروتکل RS485 می باشد.
همانطور که در شکل شماره دیده می شود ارتباط سریال 232 توسط MAX232 و کانکتور DB9 و RXD و TXD میکرو که همان پایه های 17 و 18 میکرو هستند همچنین پایه های 38,8 میکرو که پایه های RTS و CTS هستند انجام می گیرد.
برای پروتکل RS485 از ADM485 IC استفاده شده است که ولتاژ آن از بقیه مدار ایزوله است این ایزولاسیون توسط اپتوکویلرهای 6N136 انجام گرفته است.
برای تیز کردن لبه ها و افزایش سرعت از 74HC14 استفاده شده است.
انتخاب RS232 و RS485 توسط کلید SW1 انجام می گیرد.
10-1-3) خروجی به Back Plain همانطور که در شکل دیده می شود از کانکتور 64 پایه ای برای خروجی به Back Plain استفاده شده است.
خروجی های DATA و ADRESS و PWM و HSO همگی توسط مقاومت 4.7K Pull Up شده است.
همچنین خروجی های STB و PWM و IORESET و IORW و RESET توسط بافر 74HC541 بافر شده و به خروجی منتقل شده است.
کارت ورودی (DI) این کارت جمعاً دارای 14 ورودی است.
6 ورودی تحت یک زمین و 6 ورودی دیگر تحت یک زمین دیگر از طریق ترمینال ها به کارت وارد می شوند.
در این کارت برای ایزولاسیون در اپتوکوپلر AC و ON3181 استفاده شده است که با هر دو سیکل مثبت و منفی سازگار است.
کارت ورودی معمولاً به ولتاژ 24 وصل می شود ولی مقایسه مقاومت های بر سد راه ولتاژ ورودی به گونه ای تنظیم شده اند که کارت ورودی به ولتاژ 30 دست هم قابل اتصال است.
خروجی Pull Up شده اپتوکوپکر پس از یک Debounce گیری به بافر 74HC245 وارد شده، که در صورتی که بافر توسط PAL22v10 که روی برداشت و کار دیگر کردن بافرهای درون برد را برعهده دارد انتخاب شده باشد اطلاعاتی به روی بافر اصلی که جهت باس با IO/2W قابل تنظیم است وارد می شوند.
لازم به تذکر است که بافرهای استفاده شده برای کارت 74HC245 می باشند دو تا جهت باز کردن Dataها و یک بافر جهت انتخاب نوع کارت و بافر دیگر جهت انتقال اطلاعات به Back Plane.
ورودی های PAL به ترتیب AD7 تا AD0، IA3 … IA0، STB، IORW و سیکل های آن ED تا ED4 می باشند که مربوط به فعال کردن بافرها می باشد Nibble بالایی AD7 تا AD0 جهت انتخاب نوع کارت و Nibble پائین آن جهت انتخاب بافرهای درون کارت است.
کارت خروجی (DO) این کارت دارای 14 خروجی است 7 ورودی تحت یک زمین و 6 ورودی تحت یک زمین دیگر از طریق ترمینال ها از کارت خارج می شوند.
در این کارت نحوه Decoding این کارت شبیه کارت DI است.
Write در این کارت دو مرتبه صورت می گیرد در مرحله اول اطلاعات نوشته شده در کارت در یک Latch قرار می گیرد بار دیگر برای نوشتن در یکی از آدرس های Latch هائی که اطلاعات را Latchمیکنند صورت می گیرد اطلاعات نوشته شده در مرحله دوم به همراه اطلاعات نوشته شده در مرحله اول به یک مقایسه کننده هشت بیتی می روند و در صورتی که با هم برابر باشند خروجی مقایسه کننده صفر خواهد گشت سپس Pal با فعال ساختن Latch هائی که در آدرس آن Write دوم صورت گرفته اطلاعات Latch شده به 2803A Driver می روند خروجی این Driver به رله های 12 ولتی متصل است هر 2803A قادر است 8 تا رله را ریست می کند.
خروجی رله ها به ترمینال ها جهت استفاده رفته اند.