اطلاعیه

Collapse
No announcement yet.

ارتباط plc با labview

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : ارتباط plc با labview

    سلام
    وقت بخیر
    من باید از PLC LS استفاده کنم و باید با LAbview ارتباط برقرار کنم اما مشکل دارم و اون اینه که برای نوشتن و یا خوندن ، چه دیتای رو باید به PLC بفرستم؟؟ مشکلم فقط همینه یعنی با VISA توی لب ویو میشه به همه چیز وصل شد اما چه دیتای رو باید به PLC فرستاد و متعاقباً دریافت کرد
    من از GM7U باید استفاده کنم.توی کاتالوگش یه چیزای گفته اما هر کاری می کنم نمیشه!!!!
    یه Fream Base داره اما به دو صورت ASCII و یه کد دیگه باید استفاده کرد اما تلاش ها بی فایده است.
    اگه امکانش هست راهنمای کنید.
    با تشکر

    دیدگاه


      #17
      پاسخ : ارتباط plc با labview

      سلام آقای اکبری.من میخوام بدونم که شما در کار صنعتی و واقعی از labview استفاده کردین برای HMI؟ سوال بعدیم اینه که مدرک شما چیه و در حال حاضر در چه کاری فعالید؟ممنون میشم جواب بدین
      جانم به فدای ائمه اطهار
      می دونستم تحمل مرگ اعضای خانواده خیلی سخته ولی نه تا این حد،ایکاش پدرم بیشتر می موند.روحش شاد.

      دیدگاه


        #18
        پاسخ : ارتباط plc با labview

        نوشته اصلی توسط Majid.ebru
        سلام
        وقت بخیر
        من باید از PLC LS استفاده کنم و باید با LAbview ارتباط برقرار کنم اما مشکل دارم و اون اینه که برای نوشتن و یا خوندن ، چه دیتای رو باید به PLC بفرستم؟؟ مشکلم فقط همینه یعنی با VISA توی لب ویو میشه به همه چیز وصل شد اما چه دیتای رو باید به PLC فرستاد و متعاقباً دریافت کرد
        من از GM7U باید استفاده کنم.توی کاتالوگش یه چیزای گفته اما هر کاری می کنم نمیشه!!!!
        یه Fream Base داره اما به دو صورت ASCII و یه کد دیگه باید استفاده کرد اما تلاش ها بی فایده است.
        اگه امکانش هست راهنمای کنید.
        با تشکر
        سلام دوست عزیز

        متاسفانه من تا به حال با GM7U کار نکردم ولی اصول کارش با دیگر سری های Glofa در LS یکی است

        یه مطالعه کوتاه روی Manual سری GM7U کردم.

        شما در کل دو راه در پیش دارید

        1 ) استفاده از Built-in/external Communication Setting Switch

        2 ) استفاده از CNet در حالت ModBus یا UserDefine

        به نظر من بهترین روش استفاده از CNet در حالت ModBus هستش ولی بقیه رو هم یه توضیح کوتاه میدم

        بیشتر سعی دارم توجهتون رو به بخش های مفید کاتالوگ جلب کنم
        پس اکثر مطالب مورد نیاز تو کاتالوگ ها هست

        دیدگاه


          #19
          پاسخ : ارتباط plc با labview

          - Built-in/external Communication Setting Switch:


          با تنظیم تو حالت RS-232C communication


          بعد به بخش Communication Functions توجه کنید:



          توجه :
          - کانال صفر در GM7U تنها ارتباط یک به یک (1:1) را ساپورت می کند. برای ارتباط 1:N به صورت Master و Slave باید از کانال 1 که به صورت RS485 است استفاده کنید یا روش دومی را که توضیح خواهم داد استفاده کنید

          دیدگاه


            #20
            پاسخ : ارتباط plc با labview

            نکته دیگری که باید در این روش توجه کنید اینه که آرایش کابل RS232 برای این ارتباط با ارتباط با GMWIN متفاوته اما BoadRait و Station Number یکی هستش

            زیرا نکته ای که تا الان خودم هم نمی دونستم اینه که GM7U نیز همانند GM6 در پورت 9 پین که روی خود CPU است (DB9) دارای 2 پورت سریال است

            یکی برای ارتباط با GMWIN و دیگری برای ارتباط ریموتی به صورت CNet. در حالی که GM4 با اینکه cpu پیشرفته تری هست پورت سریال دوم را ندارد

            دقت کنید:







            برای شبکه کرده دو یا چند تا PLC با یکدیگر هم به همین شیوه است

            دیدگاه


              #21
              پاسخ : ارتباط plc با labview

              سلام و ممنون از اینکه جواب دادید
              مشکل من یه چیز دیگه است!!!
              برای ارسال و دریافت دیتا به/از PLC شما باید از یک ساختار از پیش تعیین شده LS استفاده کنید .که به این صورت هست :
              ENQ:Station Num:Read/Write:Ind?Contu:%:M/Q/I:Address
              به طور مثال برای خواندن حافظه 100 باید بنویسید :
              ENQ00rSB%MW100EOT
              .
              .
              مشکل توی ارسال و دریافت این دیتا ها هست:چه جوری فرستاد /در یافت کرد . چه جوری تفسیر کرد و ...
              ممنون

              دیدگاه


                #22
                پاسخ : ارتباط plc با labview

                باقی کار آماده کردن و ارسال فریم های دستور و خوندن فریم های پاسخ و دریافت ACK یا NACK و ... است که مربوط به بخش Labwiew میشه

                که قبلا توضیح داده بودم ولی قصد دارم برای اینکه برای همه دوستان جا بیفته مفصل توضیح بدم

                فرم کلی ارسال فریم دستور به صورت زیر:

                1) Request Frame:



                2) پاسخ اگر مثبت باشد ( ACK Response):



                3) اگر درخواست نا موفق باشد (NAK Response):



                اما حالا این header و Tailer چیه :

                اینا یه سری کد Hex هستن که یک بایت بیشتر نیستن
                اما یه دقتی تو انتخاب اونا بوده و اون اینه که مقدار دسیمال این کد ها در رنج تعریف شده کد های اسکی کیبورد نیستند(مثال : کد اسکی A برابر 65 هستش یا علامت % که خیلی پر کاربرده 37 هستش)



                نکته ای که اینجا باید یاد آوری کنم اینه که همه اطلاعاتی که ارسال می کنید باید به شکل هگزادسیمال باشند
                از جمله :
                Station Number
                دستورات
                Address
                و خود Data

                به موقش با مثال منوجه میشید.

                دیدگاه


                  #23
                  پاسخ : ارتباط plc با labview

                  نوشته اصلی توسط Majid.ebru
                  سلام و ممنون از اینکه جواب دادید
                  مشکل من یه چیز دیگه است!!!
                  برای ارسال و دریافت دیتا به/از PLC شما باید از یک ساختار از پیش تعیین شده LS استفاده کنید .که به این صورت هست :
                  ENQ:Station Num:Read/Write:Ind?Contu:%:M/Q/I:Address
                  به طور مثال برای خواندن حافظه 100 باید بنویسید :
                  ENQ00rSB%MW100EOT
                  .
                  .
                  مشکل توی ارسال و دریافت این دیتا ها هست:چه جوری فرستاد /در یافت کرد . چه جوری تفسیر کرد و ...
                  ممنون
                  مثال برای خواندن از حافظه 100 به صورت گسسته(Individual) باید اینگونه نوشت:



                  مشکلتون تو نحوه نوشتن توی LabView هستش؟؟؟

                  دیدگاه


                    #24
                    پاسخ : ارتباط plc با labview

                    نوشته اصلی توسط ehsan_akbari
                    مثال برای خواندن از حافظه 100 به صورت گسسته(Individual) باید اینگونه نوشت:



                    مشکلتون تو نحوه نوشتن توی LabView هستش؟؟؟
                    سلام آقای اکبری.من میخوام بدونم که شما در کار صنعتی و واقعی از labview استفاده کردین برای HMI؟ سوال بعدیم اینه که مدرک شما چیه و در حال حاضر در چه کاری فعالید که LGرو اینقدر خوب بلدین؟ممنون میشم جواب بدین.
                    جانم به فدای ائمه اطهار
                    می دونستم تحمل مرگ اعضای خانواده خیلی سخته ولی نه تا این حد،ایکاش پدرم بیشتر می موند.روحش شاد.

                    دیدگاه


                      #25
                      پاسخ : ارتباط plc با labview

                      نوشته اصلی توسط ahmadpashaei
                      سلام آقای اکبری.من میخوام بدونم که شما در کار صنعتی و واقعی از labview استفاده کردین برای HMI؟ سوال بعدیم اینه که مدرک شما چیه و در حال حاضر در چه کاری فعالید که LGرو اینقدر خوب بلدین؟ممنون میشم جواب بدین.
                      سلام دوست عزیز
                      بله عزیزم در کارهای واقعی استفاده شده است . در غیر این صورت لزومی برای پرداختن به این مسائل می بینید؟؟؟

                      برای طراحی بخش HMI و کنترلی دستگاه هایی مانند AutoClove (اتوکلاو) و دستگاه کوره خم شیشه جلوی ماشین و دستگاه وکیوم و دستگاه بسته بندی که به سفارش شرکت های مختلف بوده از LabView استفاده کردم

                      البته یک CNC کوچک هم که برای برش شیشه بود با لب ویو طراحی و اجرا کردم.

                      معمولا از LabView برای مواردی که تنها مونیتورینگ کردن لازمه استفاده نمی کنم
                      زیرا نرم افزار ها و HMIهای سخت افزاری برای اینکار ساده تر هستند

                      معمولا مواقعی که علاوه بر مانیتور کردن نیاز به گزارش گیری و رسم نمودار و به عنوان مثال ارسال به شبکه و یا تبدیل به PDF و ... نیاز باشه یا Import و Export کردن و محاسبات ریاضی پیچیده لازم باشه از LabView استفاده می کنم
                      مثلا بخواهید فایلی با پسوند DXF رو Load کنید و تبدیلات و تغییراتی روش انجام بدید یا مسیر اپتیموم یک نقشه رو پیدا کنید یا ....

                      مدرک من در حال حاضر لیسانس الکترونیکه و خودمم نمی دونم دقیقا چکاره هستم.

                      با یک شرکت که سازنده ماشین آلات صنعتی الالخصوص تو صنعت شیشه هست همکاری می کنم و کارهای اتوماسیون و طراحی مدارات الکترونیکی و برنامه نویسیشون رو انجام میدم

                      از سمت دیگه با شرکت رباتیک هیوا (Hiva) همکاری می کنم و کیت های آموزشی رباتیک که توسط قشم ولتاژ(بر مبنای پنل زیمنس) برای آموزش رباتیک ارائه میده رو به کمک یکی از ماهرترین مهندسین رباتیک و از بهترین دوستانم آقای مهندس صالحی میسازیم و تو کارهای اتوماسیون نیز بهشون مشورت می دم

                      از طرف دیگه هم خودم گه گداری کارهای جست و گریخته انجام می دم

                      فعلا هم در خدمت سازمان هواشناسی برای طراحی و پشتیبانی سیستم های هواشناسی هستم
                      ساخت دیتالوگر خودکار که به زودی این صنعت هواشناسی هم در ایران بومی میشه

                      LG رو هم تصادفی انتخاب کردم
                      تا قبل اون تنها با دو برنت زیمنس و امرن کار می کردم و تنها دلیل انتخاب LG قیمت مناسب تر بود
                      و وقتی با شرکت ایمن تابلو چند بار کار کردم ترجیح دادم برای کارهای معمولی که مشتری مارک خاصی رو اسرار نداره از LG استفاده کنم

                      البته برای سیستم های DCS و یا ریداندنسی سعی می کنم از همون زیمنس استفاده کنم

                      هر چند جدیدا شرکت LS نیز سری های جدید XGT و GXR رو که برای سیستم های ریداندنسی هست ارائه داده
                      اما حقیقتش اینه که تا بحال برای این موارد از LS استفاده نکردم

                      دیدگاه


                        #26
                        پاسخ : ارتباط plc با labview

                        مدل های مختلفی برای خواندن و نوشتن از حافظه PLC وجود داره
                        - گسسته یا پیوسته (Individual or Continuous)
                        - مستقیم یا غیر مستقیم (Direct or Indirect)
                        - Monitoring execution
                        - Reading PLC Status - RST

                        که فرمت فریم دستور ارسالی و پاسخ با یکدیگر فرق می کنند که من در این بخش فقط Individual reading of direct variable (R(r)SS) رو به همراه برنامه لب ویو توضیح میدم

                        بقیش خیلی شبیه به همین موضوع هستش

                        امیدوارم تو بخش توضیح LabView ش سوالاتون جواب داده بشه

                        اما اون بخشی که خیلی مهمه محاسبه BBC و اضافه کردن اون تو انتهای دستور هستش
                        قبلا تو یک پست مفصلا در موردش توضیح دادم:

                        http://www.eca.ir/forum2/index.php?topic=46403.0
                        :read:

                        دیدگاه


                          #27
                          پاسخ : ارتباط plc با labview

                          خیلی ممنونم ازتون.فقط نفهمیدم LSچیه؟!! منم lg و zenو لوگو رو در حد دانشگاه بلدم.ولی تا حالا کار نکردم بیرون ولی شبکه کردن رو اصلا بلد نیستم چون شبکه های صنعتی رو بچه های کنترل در کارشناسی می خونن.ایشالا تا 2سال دیگه یاد میگیرم :mrgreen:میخوام یک کار اتوماسیون پرکینگ شهرداری رو به شهرداری پیشنهاد بدم برای برق کاریش اکیپ دارم و مشکلی نیست ولی اینکه بتونم اونارو قانع کنم اتوماسیون و plc یعنی چی و بخوام کارو انجام بدم میبترسم.نظر شما چیه؟البته برای این کارا احتمالا میفته برای تابستون و وقت تحقیق دارم ولی از این ترم باید بیام تهران برای لیسانس :angry:
                          جانم به فدای ائمه اطهار
                          می دونستم تحمل مرگ اعضای خانواده خیلی سخته ولی نه تا این حد،ایکاش پدرم بیشتر می موند.روحش شاد.

                          دیدگاه


                            #28
                            پاسخ : ارتباط plc با labview

                            مثال : خواندن یک Word تو آدرس %MW20 از PLC با Station Number یک(1):



                            مقدار Header(ENQ) = H05 هستش : که تو لب ویو فقط 5 رو قرار می دیم

                            Station Number = 01 چطور شده 3031
                            در اصل باید دو بایت جدا ارسال کرد یک بایت 30 هگز و دیگری 31 هگز

                            30 هگز همون 48 دسیمال هستش که کد اسکی "0" هستش
                            31 هگز همون 49 دسیمال هستش که کد اسکی "1" هستش
                            یک فایل Text باز کنید و زمانی که Num Lock روشنه با نگه داشتن Alt عدد 48 و 49 رو وارد کنید.

                            Command هم r یا R هستش که معادل Read هست
                            یه تفاوت هایی بین حروف بزرگ و کوچک دستورها وجود داره که بخوام توضیح بدم یکم بحث پیچیده میشه
                            فقط توصیه میکنم که از حروف کوچیک استفاده کنید (r)
                            r = 72 هگز که معادل 114 هستش
                            این رو هم میتونید تو فایل Text امتحان کنید.

                            Command type : SS مدل دستور رو نشون میده
                            SS همون Individual reading of direct variable هستش

                            S = 53 هگز که معادل 83 دسیماله

                            Number of blocks = H01 که یعنی می خواهیم یک بلوک (Word) بخونیم.همیشه یک Word یک بلوکه پس یک DWord دو بلوک محسوب میشه.

                            Device length طول فیلد بعدی رو که نمایانگر آدرس هست مشخص می کنه که اینجا 6 است. چرا ؟؟؟
                            توجه کنید :

                            Device name همون فیلد نمایانگر آدرس هست:
                            %MW100 حاوی 6 کارکتر است. برای همینه که تو قسمت قبل Device length رو 6 گزاشتیم
                            اگه میخواستیم آدرس %MW99 رو بخونیم باید 5 میزاشتیم.

                            H254D57313030 هم مقدار Device name هست که اگه 25 و 4D و 57 و 31 و 30 و 30 رو به دسیمال تبدیل و در فایل Text به همون شیوه که گفتم وارد کنیم به %MW100 میرسیم.

                            در نهایت Tail رو که در قسمت ارسال Request برابر EOT = 4 است وارد می کنیم

                            در انتها BCC رو محاسبه و به انتهای دستور اضافه میکنیم



                            حالا این فیلد ها رو با هم ترکیب و تبدیل به یک String کرده و از طریق Serial Port ارسال می کنیم.

                            بهتره وارد بخش LabView بشیم

                            دیدگاه


                              #29
                              پاسخ : ارتباط plc با labview

                              در بخش LabView متاسفانه مقادیری که دارم با مثالی که زدم فرق می کنه

                              اما چند تا نکته رو قبل از شروع باید بگم.

                              - اول اینکه من همه مقادیری که تو این ارتباط باید به صورت هگز وارد می کردیم رو به صورت دسیمال نوشتم و برای PLC ارسال کردم.
                              چون برای PLC هدف کد اسکی هستش
                              البته میشد به صورت همون هگزادسیمال نوشت اما چون دسیمال ملموس تر هستش از دسیمال استفاده کردم.

                              - در برنامه از بلوک دیاگرامهایی استفاده شده که سعی میکنم تو عکس هام اسم بلوک ها رو بیارم
                              اگه فرصت داشتم توضیح کوتاهی هم میدم



                              از بالا شروع میکنم:

                              5 همون کد Header یا ENQ است
                              دو بایت بعدی Station Number هستش که 01 است که کد اسکیش به صورت دسیمال 48 و 49 است
                              114 هم کد اسکی r (کوچک) هستش.
                              دو بایت بعدی هم SS هستش که به صورت دسیمال 83 و 83 هست
                              بعد تعداد بلوک هایی هستش که می خواهید از حافظه بخونید که اینجا دوبایت 01 برای مشخص کردنش به کار رفته . به صورت 48 و 49

                              بعدش دو بایت طول فیلدی که نمایانگر آدرس هست.
                              05 بایته که همون 48 و 53 هست

                              5 بایت آدرس که همون %MW00 است به صورت کد اسکی دسیمال اون به ترتیب :
                              % = 37
                              M = 77
                              W = 87
                              0 = 48
                              0 = 48

                              بعدش هم در انتها Tail هستش که در ارسال دستور به صورت Request که EOT است برابر 4 هست

                              دو بایت آخر هم دو بایت کم ارزش تری است که در محاسبه BCC حاصل شده

                              دقت کنید:
                              5 + 48 + 49 + 114 + 83 + 83 + 48 + 49 + 48 + 53 + 37 + 77 + 87 + 48 + 48 + 4 = 881

                              881 اگه تبدیل به هگزادسیمال بشه میشه 371 میشه که دو رقم کم ارزشترش همون 71 هستش که اگه به اسکی و از نوع دسیمال تبدیلش کنیم میشه 7 = 55 و 1 = 49

                              Do You Underestand؟

                              دیدگاه


                                #30
                                پاسخ : ارتباط plc با labview



                                بعد اینکه Array رو ساختید و به String تبدیلش کردید باید در انتها به وسیله Concatenate این Request رو به Request های دیگر که اگه مد نظرتون هست و تو صفحه های زیرین آماده شدن بچسبونید و سپس ارسال کنید.

                                برای ارسال از طریق پورت سریال اگه همه Device ها رو نصب کرده باشید به راحتی می تونید از بلوک های زیر برای ارسال Data که باید به صورت String باشند استفاده کنید.




                                برای اینکه بیشتر با کار با پورت سریال آشنا بشید در بخش Find Example کلمه RS232 رو سرچ کنید و از موارد لیست شده Advance Serial Write and Read رو انتخاب کنید و از Help توضیحات بلوک های بکار رفته رو بخونید.

                                اگه مشکلی در نصب Device ها نباشه با اجرای برنامه ای که پیدا کردید نباید Error ای مشاهده کنید

                                اگه سایز عکس ها در اینترنت اکسپلورر مناسب نیست ابتدا عکس ها رو رو کامپیوتر خودتون Save و سپس مشاهده کنید.

                                اون خط صورتی رنگی که آرایه String رو به بخش Write انتقال میده در حقیقت ار انتهای بخش قبل (بعد Concatenate کردن اومده)

                                این تازه ارسال Request بود که انجام گرفت . اما حالا پاسخ چه به صورت ACK چه به صورت NAK کجا میاد رو در بخش بعد در فرصتی دیگر توضیح می دم.

                                دیدگاه

                                لطفا صبر کنید...
                                X