سلوك الصمام المبرمج في القسم السابق ... غير منطقي. في معالج النقر فوق الزر "فتح" أو "إغلاق" ، نقوم بتعيين قيمة العنصر المسمى الموضع مباشرةً. بالنظر إلى ذلك في DPT نفسها ، لدينا بالفعل الأمرين "فتح" و "إغلاق".
, - , , , . workshop , .
«» «».
main(mapping event)
{
dpSet("System1:Flap1.Commands.Open", 1, "System1:Flap1.Commands.Close", 0);
}, DPE, , , . «» «», « » (, , , ).
«Close»
, Para
, , . open close .
gedi Scripts, Add New CTRL Script
, Model
. . - WinCC OA, dpConnect, . .
dpConnect . , , .
callback .
WinCC OA. «» dpGet , , .
, dpConnect . — callback- ( OnOpen_CB), — , . , , - main Model :
main()
{
dpConnect("OnOpen_CB", "System1:Flap1.Commands.Open");
}callback-. — ( string) «» ( «» ). .
void OnOpen_CB(string dp1, bool bNewValue)
{
;
}, . «» «», , 90. «», — 0.
void OnOpen_CB(string dp1, bool bNewValue)
{
if (bNewValue) {
dpSet("System1:Flap1.Inputs.Position", 90);
} else {
dpSet("System1:Flap1.Inputs.Position", 0);
}
}- . «» Control Manager. , (Control), . Control. . , , ?
WinCC OA Append new manager, Control. (Start mode) (manual), . . 2. 2? 1 . . . , ui 1 ctrl 1, ui ( ctrl) . «-num 2». , . :
Manager Start ( ). , 2.
.
, Control Manager (, main) . main() callback , , dpConnect ( ). , , control- . - .
يقوم مدير التحكم بنفسه بإنشاء عملية منفصلة خاصة به عند بدء التشغيل. يتم تنفيذ وظيفتها الرئيسية في خيط منفصل (خيط). يتم أيضًا تشغيل وظيفة رد الاتصال (في حالتنا OnOpen_CB) في سلسلة منفصلة. بعد التنفيذ ، تتوقف الوظيفة الرئيسية عن العمل ، لكن رد الاتصال يستمر في ذاكرة الكمبيوتر (في الخيط الخاص به) ويتم استدعاؤه عندما يتغير المتغير "الموقع".