[성현모] CPXV2 Init
This commit is contained in:
@ -0,0 +1,222 @@
|
||||
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using SystemX.Net.Platform.Common.Util;
|
||||
|
||||
using ActUtlTypeLib;
|
||||
//using MITSUBISHI.Component;
|
||||
|
||||
namespace SystemX.PLC.Interface.MxComponent
|
||||
{
|
||||
class PLCMxComponent
|
||||
{
|
||||
//DotUtlType _DotUtlType;
|
||||
ActUtlTypeLib.ActUtlType _ActUtlType;
|
||||
|
||||
public bool m_IsPlcConnected;
|
||||
bool m_bLockFin = false;
|
||||
|
||||
// Set the read/write timeouts
|
||||
int m_nReadTimeOut = 500;
|
||||
int m_nWriteTimeOut = 500;
|
||||
|
||||
public PLCMxComponent()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void SetTimeOut(int nWriteTimeOut, int nReadTimeOut)
|
||||
{
|
||||
m_nReadTimeOut = nReadTimeOut;
|
||||
m_nWriteTimeOut = nWriteTimeOut;
|
||||
}
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
try
|
||||
{
|
||||
_ActUtlType = new ActUtlTypeLib.ActUtlType();
|
||||
//_DotUtlType = new DotUtlType();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("Error in Initialization for plc: " + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public bool Open(string localStationNum)
|
||||
{
|
||||
int lRet;
|
||||
try
|
||||
{
|
||||
_ActUtlType.ActLogicalStationNumber = Convert.ToInt32(localStationNum);
|
||||
//_DotUtlType.ActLogicalStationNumber = Convert.ToInt32(localStationNum);
|
||||
|
||||
lRet = _ActUtlType.Open();
|
||||
//lRet = _DotUtlType.Open();
|
||||
|
||||
if (lRet == 0)
|
||||
{
|
||||
m_IsPlcConnected = true;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
LogMessage.MessageOutput.ConsoleWrite("Error Open PLC Connection.", ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||
m_IsPlcConnected = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogMessage.MessageOutput.ConsoleWrite("Error during logical station opening: " + ex.Message, ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public bool Close()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (m_IsPlcConnected)
|
||||
{
|
||||
//_DotUtlType.Close();
|
||||
_ActUtlType.Close();
|
||||
}
|
||||
|
||||
m_IsPlcConnected = false;
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogMessage.MessageOutput.ConsoleWrite("Error during plc close: " + ex.Message, ConsoleColor.Red, LogMessage.LogMessageLevel.FATAL);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public bool ReadData(string deviceName, int size, ref short[] data)
|
||||
{
|
||||
bool ret = false;
|
||||
int iRet = 0;
|
||||
|
||||
try
|
||||
{
|
||||
iRet = _ActUtlType.ReadDeviceRandom2(deviceName, size, out data[0]);
|
||||
//iRet = _DotUtlType.ReadDeviceRandom2(ref deviceName, size, ref data);
|
||||
|
||||
if (iRet == 0)
|
||||
ret = true;
|
||||
else
|
||||
ret = false;
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
#if DEBUG
|
||||
MessageBox.Show(ex.ToString());
|
||||
#endif
|
||||
ret = false;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public bool BlockReadData(string deviceName, int size, ref short[] data)
|
||||
{
|
||||
bool ret = false;
|
||||
int iRet = 0;
|
||||
|
||||
try
|
||||
{
|
||||
iRet = _ActUtlType.ReadDeviceBlock2(deviceName, size, out data[0]);
|
||||
//iRet = _DotUtlType.ReadDeviceBlock2(ref deviceName, size, ref data);
|
||||
|
||||
if (iRet == 0)
|
||||
ret = true;
|
||||
else
|
||||
ret = false;
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
#if DEBUG
|
||||
MessageBox.Show(ex.ToString());
|
||||
#endif
|
||||
ret = false;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
public bool WriteData(string deviceName, int size, short[] data)
|
||||
{
|
||||
bool ret = false;
|
||||
int iRet = 0;
|
||||
|
||||
try
|
||||
{
|
||||
iRet = _ActUtlType.WriteDeviceRandom2(deviceName, size, data[0]);
|
||||
//iRet = _DotUtlType.WriteDeviceRandom2(ref deviceName, size, ref data);
|
||||
|
||||
if (iRet == 0)
|
||||
ret = true;
|
||||
else
|
||||
ret = false;
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
#if DEBUG
|
||||
MessageBox.Show(ex.ToString());
|
||||
#endif
|
||||
ret = false;
|
||||
}
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public bool BlockWriteData(string deviceName, int size, short[] data)
|
||||
{
|
||||
bool ret = false;
|
||||
int iRet = 0;
|
||||
|
||||
try
|
||||
{
|
||||
short[] blockValue = new short[size];
|
||||
Array.Copy(data, blockValue, data.Length);
|
||||
//Buffer.BlockCopy(data, 0, blockValue, 0, size);
|
||||
|
||||
iRet = _ActUtlType.WriteDeviceBlock2(deviceName, size, blockValue[0]);
|
||||
//iRet = _DotUtlType.WriteDeviceBlock2(ref deviceName, size, blockValue);
|
||||
|
||||
if (iRet == 0)
|
||||
ret = true;
|
||||
else
|
||||
ret = false;
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
#if DEBUG
|
||||
MessageBox.Show(ex.ToString());
|
||||
#endif
|
||||
ret = false;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void ReleaseLock()
|
||||
{
|
||||
m_bLockFin = false;
|
||||
}
|
||||
|
||||
public bool GetLockState()
|
||||
{
|
||||
return m_bLockFin;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user