SCADA connection with

IF "Total Parts" MOD 2 = 0 THEN


"F_TRIG_DB_4"(CLK:="Pusher Diffuse Sensor", Q=>"Pusher_1");

END_IF;

IF "Pusher_1" THEN
"P1" := 1;


END_IF;

"R_TRIG_DB_4"(CLK:="Pusher front Sensor",
Q=>"Pusher_2");

IF "Pusher_2" THEN
"P1" := 0;


END_IF;

dastor az plc va SCADA bayad hatman be memory ersal beshe giya ta kar kone, age eshtebah mikonam behem begin lotfan.

man in barnamaro to scl neveshtam tanha moshkeli k dare ine k pusher p1 dorost kar nemikone ya baz mishe baste nemishe ya baste mishe dige baz nemishe. mamnon mishaam rahenmai konid.

besiar mamnonam. aya barnamei baray amozesh other plc like omron allen bradley darin?

سلام روز بخیر ،برنامه شما برنامه ای نیست که من همینطوری بتونم تحلیل کنم کلا ساختار scl نسبت به زبانهای دیگه در plc یکم پیچیده تر هست بنظرم شما برنامه رو اجرا کنید و در هنگام اجرا وضعیت برنامه رو مانیتور کنید تا بتوانید از روی وضعیت متغییر ها اشکال برنامه رو پیدا کنید

salam vagghteton bekheir, system hmi ya scada nemitone be plc dastor bede faghat taghirat ro neshon mide chetor mitonam in moshkel ro bartaraf konam. ba sepas



Salam vaghteton bekheir

سلام ،اطلاعاتی که سیستم hmi به plc ارسال میکنه میتونه خروجی ،حافظه memory یا دیتا بلاک باشه، اگه به ورودی فرمان بدید اتفاقی کوه میرفته اینه که در سریال بعدی ورودی با مقداری که از ورودی میتونه جایگزین میشه و عملا فرمانی نمیگیرخ

در آموزشهای آقای مهندس گودینی در مورد plc امرن توضیحات کاملی هست شما می تونید از طریق سایت یا تلفنی درخواست بفرمایید

IF "Start" THEN
"M1" := 1;
;
END_IF;

IF "Stop" THEN
"M1" := 0;
"M2" := 0;
"M3" := 0;
"M4" := 0;
"M5" := 0;
"P1" := 0;
;
END_IF;

"R_TRIG_DB"(CLK:="FC1",
Q=>"FC1_R");

"F_TRIG_DB"(CLK:="FC2",
Q=>"FC2_F");

IF "FC1_R" THEN
"M2" := 1;


;

END_IF;

IF "FC2_F" THEN
"M2" :=0;
"Total Parts" := "Total Parts" + 1;
;
END_IF;

"R_TRIG_DB_1"(CLK:="FC2",
Q=>"FC2_R");

"F_TRIG_DB_1"(CLK:="FC3",
Q=>"FC3_F");

IF "FC2_R" THEN
"M3" := 1;


;

END_IF;

IF "FC3_F" THEN
"M3" := 0;
;
END_IF;

"R_TRIG_DB_2"(CLK:="FC3",
Q=>"FC3_R");

"F_TRIG_DB_2"(CLK:="FC4",
Q=>"FC4_F");

IF "FC3_R" THEN
"M4" := 1;
;
END_IF;

IF "FC4_F" THEN
"M4" := 0;
;
END_IF;

IF "Total Parts" MOD 2 = 0 THEN


"F_TRIG_DB_4"(CLK:="Pusher Diffuse Sensor", Q=>"Pusher_1");

END_IF;

IF "Pusher_1" THEN
"P1" := 1;
;
END_IF;

"R_TRIG_DB_4"(CLK:="Pusher front Sensor",
Q=>"Pusher_2");

IF "Pusher_2" THEN
"P1" := 0;


;

END_IF;


"R_TRIG_DB_3"(CLK:="FC5",
Q=>"FC5_R");

"F_TRIG_DB_3"(CLK:="FC6",
Q=>"FC6_F");

IF "FC5_R" THEN
"M5" := 1;
;
END_IF;

IF "FC6_F" THEN
"M5" := 0;
;
END_IF;

// Counter Reset

IF "Reset Counter" THEN
"Total Parts" := 0;
;
END_IF;

"IEC_Timer_0_DB".TON(IN:="FC1",
PT:=T#4s,
Q=>"Timer"
);

IF "Timer" THEN
"M1" := 0;
"M2" := 0;
;
END_IF;