Cool Muscle(마쓰루) 모터제어 클래스 C#
Software/C#2023. 3. 22. 10:22
반응형
마쓰루 사의 Cool Muscle 제품의 통신 제어를 위한 클래스 코드 입니다.
시리얼을 통해 모터를 제어하는 제품 입니다.
public class CCoolMuscle
{
public enum MOTOR_DIRECT { CW, CCW }
private SerialPort m_ComPort;
private int m_uiSpeed;
private int m_uiAcceleration;
public CCoolMuscle(SerialPort ComPort)
{
m_ComPort = ComPort;
Timeout = 60;
}
public int Speed
{
set
{
m_uiSpeed = value;
string message = string.Format("S.1={0}\r", m_uiSpeed);
m_ComPort.Write(message);
}
}
public int Acceleration
{
set
{
m_uiAcceleration = value;
string message = string.Format("A.1={0}\r", m_uiAcceleration);
m_ComPort.Write(message);
}
}
public uint Timeout { set; get; } = 60; // 60 sec
public void A_Move(int Position)
{
string message = string.Format("P.1={0},^\r", Position);
m_ComPort.Write(message);
}
public void R_Move(int Distance, MOTOR_DIRECT Direct)
{
string message;
if (Direct == MOTOR_DIRECT.CW) message = string.Format("P+.1={0},^\r", Distance);
else message = string.Format("P-.1={0},^\r", Distance);
m_ComPort.Write(message);
}
public void Set_Zero_Position()
{
m_ComPort.Write("|2\r");
}
public int Get_Position(out int Position)
{
int result = 0;
Position = 0;
m_ComPort.Write("?96\r");
Thread.Sleep(100);
try
{
string str = m_ComPort.ReadLine();
if (str.Length == 0) result = -1;
else
{
Position = int.Parse(str.Remove(0, str.IndexOf('=') + 1));
}
}
catch
{
Position = 0;
result = -2;
}
return result;
}
public int Check_Motor_Stop()
{
int result;
m_ComPort.Write("?99\r");
try
{
string str = m_ComPort.ReadLine();
if (str.Contains("Ux.1=8") == true) result = 0; // Motor is Stop
else result = 1; // Motor is moving
}
catch
{
result = -1;
}
return result;
}
public void Motor_Stop()
{
m_ComPort.Write("]\r");
m_ComPort.Write("]\r");
}
public void Move_Zero_Position()
{
m_ComPort.Write("|1\r");
}
public void Return_Origin_Position()
{
// 원점 복귀, 원점의 위치를 새로 갱신
m_ComPort.Write("|\r");
}
}
반응형
'Software > C#' 카테고리의 다른 글
Tag 속성을 이용하여 RadioButton 사용 코딩 줄이기 #1 - C# (0) | 2023.04.25 |
---|---|
시리얼 통신에서의 async await 사용 - C# (0) | 2023.03.28 |
VIC-D 시리즈 (엠에프씨코리아 ) 제어 클래스 C# (0) | 2023.03.22 |
OpenCVSharp 카메라 제어 #4 ( Pattern Matching ) (0) | 2023.03.21 |
OpenCVSharp 카메라 제어 #3 ( Image Capture ) (0) | 2023.03.20 |
댓글()