كل متغير في PLC يحصل تلقائيًا على النوع المناسب من البيانات. يجب تعيين التحويل فقط في الواجهة. في هذا الفصل، يتم شرح أنواع مختلفة من Antcas Control.
هذا النوع يمكن أن يكون له حالتان فقط. صحيح أو خاطئ. في التطبيق، يمكن تعريف قيمة بدلاً من متغير بقيمة TRUE (صحيح) أو FALSE (خاطئ).
بالإضافة إلى ذلك، يتم استخدام النوع الخاص NULL. يتم تعيين هذا الحالة عند تهيئة متغير، أي متغير غير مكتوب. بالإضافة إلى ذلك، يمكن استخدام NULL لأغراض خاصة. على سبيل المثال، عندما لا يجب نقل قيمة إلى الواجهة.
integer هو عدد صحيح، مثل 0 أو 26. بالإضافة إلى ذلك، يمكن أن يكون القيمة سالبة أيضًا. يعمل Antcas Control مع PLC 64-bit التي تتيح حساب الأعداد الكبيرة جدًا. أكبر عدد هو محدد مع الثابت INT_MAX (9223372036854775807). أصغر عدد هو في INT_MIN أو INT_MAX+1، حيث يستخدم الإشارة bit. جميع الأعداد خارج النطاق يتم تطبيقها في Float مع أس. الحساب يكون غير دقيق بعد ذلك.
يمكن أن يحصل integer على القيمة -0، والتي ليست مساوية لـ FALSE. ومع ذلك، فإن الفحص مع الدالة EQ(-0,0) يعطى TRUE. يمكن تعريف -0 فقط كسلسلة من الرموز '-0'.
يمكن أيضًا تعريف قيمة Hex مباشرة. يبدأ بـ 0x أو 0X. على سبيل المثال، يتم تحويل 0xFF إلى 255.
float أو أيضًا قيمة Real هي عدد عشري، مثل 0.1 أو 22.005 (مع نقطة). يتم دعم الأسس أيضًا. مثل 10E2 لـ 1'000 أو 10e-2 لـ 0.1. لا يهم الحروف الكبيرة والصغيرة. يتم محاولة تحويل العدد إلى integer، حيث يكون الحساب أسهل لـ PLC. قد يحدث أن تصبح الحسابات غير دقيقة مع الأعداد الكبيرة. عدد الأرقام العشرية القصوى هو ثابت على 14 لتسريع أداء PLC.
الأعداد العشرية لها دقة محدودة. على الرغم من أن هذا يعتمد على النظام، فإن Antcas Control يستخدم عادةً تنسيق IEEE 754 الدقيق، والذي ينتج عن ذلك خطأ تقريبي نسبي أقصى في نطاق 1.11e-16. قد تسبب العمليات الحسابية غير الأساسية أخطاء أكبر وقد يجب بالطبع مراعاة انتشار الخطأ إذا تم تركيب عدة عمليات.
بالإضافة إلى ذلك، هناك أعداد كسرية يمكن تمثيلها بدقة على أساس 10 كمعدلات عشرية، مثل 0.1 أو 0.7، ولكن لا يوجد تمثيل دقيق لها كمعدلات عشرية على أساس 2، والتي يتم استخدامها داخليًا بغض النظر عن حجم المنصف. لذلك، لا يمكن تحويلها إلى تمثيلها الثنائي الداخلي دون فقدان دقة طفيف. وهذا قد يؤدي إلى نتائج محيرة: FLOOR((0.1+0.7)*10) عادةً ما ينتج عنها 7 بدلاً من النتيجة المتوقعة 8، حيث يكون التمثيل الداخلي شيئًا مثل 7.9999999999999991118.
لذلك، يجب عدم الاعتماد أبدًا على الأعداد العشرية حتى آخر رقم عشري ولا يجب اختبار الأعداد العشرية مباشرة على المساواة.
سلسلة من الرموز أو أيضًا تسمى String يتم تعريفها مع علامة تنصيص واحدة ' ' أو علامات تنصيص مزدوجة " ". مثل 'نص 1' أو "اختبار!". مع كتلة الوظيفة CONCAT يمكن دمج عدة سلاسل من الرموز.
يمكن إنشاء Return Line أو سطر جديد باستخدام CTRL+Enter. يتم تمثيل ذلك بعد ذلك بسهم ↵.
لا يوجد حاجة إلى رمز فرار لتحديد ' أو " داخل سلسلة الرموز نفسها. يمكن تحديد السلسلة مباشرة مع "هناك علامة " في النص".
من الممكن deklarieren رموز خاصة مباشرة. يتم ذلك داخل سلسلة الرموز مع علامات تنصيص مزدوجة كما يلي:
| تسلسل الفرار | اختصار ASCII |
|---|---|
| \\ | مفرغ \ |
| \n | LF |
| \r | CR |
| \r\n | CRLF |
| \0 | NUL |
| \t | TAB |
| \e | ESC |
| \f | FORMFEED |
| \x## | بايت عشوائي |
على سبيل المثال، لتحديد بايت عشوائي 126 أو 7E كرقم سداسي عشر، يتم استخدام التعبير التالي: "\x7E". هذه السلسلة من الرموز تتوافق بعد ذلك مع "~".
في هذا السياق، 7E هو قيمة بديلة. يمكن تحديد جميع القيم داخل القيم السداسية العشرية من 00 إلى FF. لاحظ أن BOM UTF-8 "\xEF\xBB\xBF" يتم إزالته تلقائيًا من قبل معظم المتصفحات. من الممكن masking السلسلة. يتم استخدام backslash Leading: "\\x7E" وهذا يتوافق بعد ذلك مع '\x7E'.
تنبيه: جميع سلاسل الرموز خارج نطاق UTF-8 لا يمكن تخزينها بشكل دائم. في العرض المباشر، يتم عرض هذه السلاسل بلون بنفسجي داكن.
انظر أيضًا المقال تحويل سلسلة الرموز إلى أرقام.
يحدد تاريخًا ووقتًا مع DT# على سبيل المثال DT#2016-03-25-22:12:00. يتم تحويل الأوقات إلى عدد صحيح في مللي ثانية منذ التاريخ 01.01.1970 (هذا القيمة هو في منطقة الوقت UTC/GMT).
يحدد تاريخًا منذ منتصف الليل مع D# على سبيل المثال D#2016-03-25. يتم تحويل الأوقات إلى عدد صحيح في مللي ثانية منذ التاريخ 01.01.1970 (هذا القيمة هو في منطقة الوقت UTC/GMT).
يحدد وقتًا بالمللي ثانية مع T# على سبيل المثال T#5d3h5m11s500ms. يتم تحويل الأوقات إلى عدد صحيح في مللي ثانية.
لا يمكن تحديد مصفوفة مباشرة. ومع ذلك، يمكن تعيين متغيرات مع نقطة. انظر المتغيرات.
جِدّ جِدّ: لا تحدد أبدًا قيمة أقل في مصفوفة. على سبيل المثال، set و set.p - ستتوقف PLC هنا. وبالتالي لن تعمل. بالإضافة إلى ذلك، قد يؤدي هذا إلى أخطاء غير متوقعة.