Thread Content
في محطة معالجة مياه الصرف الصحي بالشركة، يتم نقل البيانات من وحدة PLC300 التابعة لشركة سيمنس إلى نظام DCS للمراقبة والإرشاد. هناك معلمة ضغط تتراوح بين -0.1 ميجا باسكال و-0.2 ميجا باسكال، لكن الضغط الفعلي أثناء التشغيل هو -0.05 ميجا باسكال فقط. يعرض شاشة نظام DCS قيمة 0 باستمرار. عند فحص برنامج إعدادات PLC، تبين أنه يتم أولاً ضرب القيمة المقاسة في 10 ليصبح الناتج -0.5، ثم يتم تحويل هذه القيمة إلى عدد صحيح مزدوج عبر دالة TRUNC، فيصبح الناتج 0. لذلك قمت أنا بنفسي بضرب القيمة المقاسة في 100، وبعد التحويل أصبح الناتج -5، لكن عند إرسال هذه القيمة إلى نظام DCS، ظهرت قيمة 65535؟ هل يعرف أحد؟
65535، يبدو أن البيانات لديك تجاوزت الحد المسموح. بما أنه قد تم تعيينه كـ TRUC، فيجب أن يكون من نوع العدد الصحيح 16 بت، فلماذا هو من نوع DW؟ من الأفضل إرسال لقطة شاشة للبرنامج.
أنت تقوم بإرسال 300 قيمة اتصال إلى DCS؛ ولكي يسهل إرسال القيم السالبة، فإن القيم من -0.1 ميجا باسكال إلى -0.2 ميجا باسكال يجب أن تُضرب في 10000 لتصبح في النطاق من -1000 إلى +2000. بعد ذلك، يُضاف 1000 للحصول على نطاق من 0 إلى 3000. بعد ذلك، يجب تحويل المتغير من نوع “real” إلى نوع “dint”, ومن الأفضل أيضًا تحويله إلى نوع “int”. وبعد إرسال البيانات إلى DCS، يجب إعادة تحويلها إلى النموذج الأصلي.
مثل هذا المثال، إذا تم إرسال القيم الأصلية لـ PLC AI، ثم إجراء التحويلات اللازمة في DCS، فسيكون ذلك أفضل!
يبدو أن هناك تجاوزًا في البيانات، لكن ليس من الواضح سبب حدوث ذلك
هذه طريقة جيدة، سأجرب تعديلها فيما بعد
بهذه الطريقة، لا يزال يتعين سحب الأسلاك، وهو أمر مزعج.
أنت في الأصل تعمل في مجال الاتصالات، وهذا أيضًا اتصال؛ إنه مجرد إرسال القيم الأولية قبل توحيد مواصفات الذكاء الاصطناعي، ولا حاجة لسحب أسلاك للاتصال
هل المقصود إرسال مدخلات الذكاء الاصطناعي (قيم بين 0 و27648) مباشرة؟
أجل، يجب إجراء التحويل مرة أخرى وفقًا للنطاق