﻿#VB
'rem Modified may/18/2022 by CNC4PC

Dim  Set_Point as string, Set_Point_Screen as string, delay_thc as string, Histeresys as string, Histeresys_Screen, Divider as string
Dim  Readvalue as ushort, Auto_Set_Point_Button as string, Test_Mode_Button, Divider_Screen, Firmware, vOut as string

'*****************************  add CNC4PC_THC-3 block  *****************************

Set_Point = exec.Readkey("CNC4PC_THC-3", "Set_Point", "Set_Point")
if Set_Point = "Set_Point" then
  Set_Point = 120
  AS3.Setfield(Set_Point, 20004)
  exec.Writekey("CNC4PC_THC-3", "Set_Point", "0")
  
end if

Histeresys = exec.Readkey("CNC4PC_THC-3", "Histeresys", "Histeresys")
if Histeresys = "Histeresys" then
  Histeresys = 2
  AS3.Setfield(Histeresys, 20007)
  exec.Writekey("CNC4PC_THC-3", "Histeresys", "0")
  
end if

Auto_Set_Point_Button = exec.Readkey("CNC4PC_THC-3", "Auto_Set_Point_Button", "Auto_Set_Point_Button")
if Auto_Set_Point_Button = "Auto_Set_Point_Button" then
  exec.Writekey("CNC4PC_THC-3", "Auto_Set_Point_Button", "False")
  Auto_Set_Point_Button = "False"
end if

Test_Mode_Button = exec.Readkey("CNC4PC_THC-3", "Test_Mode_Button", "Test_Mode_Button")
if Test_Mode_Button = "Test_Mode_Button" then
  exec.Writekey("CNC4PC_THC-3", "Test_Mode_Button", "False")
  Test_Mode_Button = "False"
end if

Divider = exec.Readkey("CNC4PC_THC-3", "Divider", "Divider")
if Divider = "Divider" then
  Divider = 50
  AS3.Setfield(Divider, 20008)
  exec.Writekey("CNC4PC_THC-3", "Divider", "50")
  
end if

'*****************************  Set point *****************************

Set_Point_Screen = AS3.Getfield(20004)
if  Set_Point_Screen < "40" then
          AS3.Setfield(Set_Point, 20004)
end if
  if  Set_Point_Screen <> Set_Point then
      exec.Writekey("CNC4PC_THC-3", "Set_Point", Set_Point_Screen)
          
  end if


'*****************************  Set_poini_send *****************************

if AS3.Getbuttonstate(21001) = True then

if exec.GetModbusregister(201,Readvalue) then

AS3.Setfield(Readvalue, 20004)
end if
else
Set_Point_Screen = AS3.Getfield(20004)
exec.SetModbusregister(206, Set_Point_Screen)
end if

'*****************************  Histeresys *****************************

Histeresys_Screen = AS3.Getfield(20007)
if  Histeresys_Screen < "2" then
         AS3.Setfield(Histeresys, 20007)
end if

if  Histeresys_Screen <> Histeresys then
      exec.Writekey("CNC4PC_THC-3", "Histeresys", Histeresys_Screen)
end if       


'*****************************  Histeresys send *****************************
Histeresys_Screen = AS3.Getfield(20007)
exec.SetModbusregister(204, Histeresys_Screen)

'*****************************  Auto_Set_Point_Button *****************************
Auto_Set_Point_Button = exec.Readkey("CNC4PC_THC-3", "Auto_Set_Point_Button", "Auto_Set_Point_Button")
AS3.Switchbutton(Auto_Set_Point_Button, 21001)

if AS3.Getbuttonstate(21001) = false then
       exec.SetModbusregister(205, 0)
else
       exec.SetModbusregister(205, 1)
end if

'*****************************  Test_Mode_Button *****************************

AS3.Switchbutton(Test_Mode_Button, 21002)

if AS3.Getbuttonstate(128) = true then
 if AS3.Getbuttonstate(21002) = true then
    AS3.Switchbutton(false, 21002)
    exec.Writekey("CNC4PC_THC-3", "Test_Mode_Button", "False")
 end if
end if


if AS3.Getbuttonstate(21002) then

  exec.SetModbusregister(207, 1)
  if AS3.Getbutton(21003) then
     AS3.SetLED(true, 500)
     exec.SetModbusregister(209, 1)
  else
     exec.SetModbusregister(209, 0)
     AS3.SetLED(false, 500)
  end if
   
   if AS3.Getbutton(21004) then
      AS3.SetLED(true, 501)
      exec.SetModbusregister(208, 1)
  else
      exec.SetModbusregister(208, 0)
      AS3.SetLED(false, 501)
   end if
   
else
    exec.SetModbusregister(207, 0)
   exec.SetModbusregister(208, 0)
   exec.SetModbusregister(209, 0)
   AS3.SetLED(false, 500)
   AS3.SetLED(false, 501)
end if 

'*****************************  Delay_time_send  *****************************
  

if AS3.Getbuttonstate(535) = True then
     exec.SetModbusregister(203, 0)
else
     delay_thc = AS3.Getfield(234)
     exec.SetModbusregister(203, delay_thc*10)
end if

'*****************************  Arc voltage recived *****************************

if exec.GetModbusregister(200,Readvalue) then

  AS3.Setfield(Readvalue, 20005)
end if

'*****************************  Firmware recived *****************************

if exec.GetModbusregister(202,Readvalue) then
    if Readvalue = 0 then
	   Firmware = "" 
	   AS3.Setfieldtext(Firmware, 20000)
	   else
	    Firmware = "FF6-V" & Readvalue
	   AS3.Setfieldtext(Firmware, 20000)
	end if	
end if
'*****************************  Divider *****************************

Divider_Screen = AS3.Getfield(20008)
if  Divider_Screen = "1" then
         AS3.Setfield(Divider, 20008)
end if

if  Divider_Screen <> Divider then
      exec.Writekey("CNC4PC_THC-3", "Divider", Divider_Screen)
end if       


'*****************************  Divider send *****************************
Divider_Screen = AS3.Getfield(20008)
exec.SetModbusregister(210, Divider_Screen)

