UDT یا User-defined Data Type نیز از جمله بلاک هایی است که میتوان آن را در پوشه ی Blocks برنامه ی Simatic Manager ایجاد کرد. UDT ها حاوی داده هایی هستند که یکبار تعریف شده اند ، ولی به مراتب میتوانند مورد استفاده قرار گیرند. برای روشن شدن موضوع به ذکر مثالی میپردازیم:
فرض کنید 10 الکتروموتور مشابه داریم که داده های یکسانی از آنها باید در DB ذخیره شود. یک روش برای معرفی این داده ها در دیتا بلاک این است که آنها را برای تک تک تجهیزات زیر هم لیست کنیم. با این کار ،دیتا بلاک دارای سطر های زیادی خواهد بود و نوشتن آنها وقت گیر است. روش ساده تر ، استفاده از UDT است. کافی است ابتدا به روش زیر در پوشه ی بلاک ها یک UDT ایجاد کنیم.
نمایندگی زیمنس ایران
سیگنال هایی که باید ثبت شود را در آن وارد میکنیم (Current , Torque , Speed) پس از آن ، دیتا بلاک را باز کرده و در آن فقط یک کلمه به نام Motor وارد میکنیم. سپس ، توسط Array میتوان مقدار 1 تا 10 را برای آن در نظر گرفت. حال ، باید در سطر بعدی برای Array ساخته شده Type مناسب در نظر بگیریم که در اینجا UDT را به عنوان Type تعریف خواهیم کرد. جدول UDT مانند شکل زیر خواهد بود:
نمایندگی زیمنس در تهران
در ادامه ، UDT را ذخیره کرده و به محیط DB بر میگردیم که در مد Declaration View شبیه شکل زیر خواهد بود:
نماینده اتوماسیون صنعتی زیمنس
با این شرایط ، موتور 1 تا موتور 10 ساخته شده است که هر موتور دارای سه زیر مجموعه میباشد. اگر مد Data View فعال شود ، وضعیت دقیق هر آدرس دیده میشود.
نکته 1: UDT امکانی برای دسته بندی و سهولت ساختن متغیر هاست ، بنابراین به CPU دانلود نمیشود. در نتیجه ، Upload هم نمیشود ، فقط مقادیر آن در پروژه ی اصلی به صورت Offline ذخیره میماند.
نکته 2: از UDT در هر قسمت دیگر به غیر از DB نیز میتوان استفاده نمود. برای اختصاص دادن چند پارامتر مشابه و یا متفاوت و برای جلوگیری از تکرار و وقت گیر بودن دستورات از آن استفاده میشود.
نکته 3: UDT مشابه Struct است ولی Struct در داخل DB تعریف میشود ، در حالیکه UDT خارج از DB تعریف شده و میتوان از آن در چند DB مختلف استفاده کرد.