现场更改3

This commit is contained in:
2026-05-14 14:05:17 +08:00
parent 4f5c6949f4
commit 53ca705ab0
3 changed files with 229 additions and 163 deletions

View File

@@ -25,6 +25,7 @@ namespace CapMachine.Wpf.CanDrive
public class ToomossCan : BindableBase public class ToomossCan : BindableBase
{ {
private readonly IContainerProvider ContainerProvider; private readonly IContainerProvider ContainerProvider;
private readonly object _dbcParserLock = new object();
/// <summary> /// <summary>
/// 实例化函数 /// 实例化函数
@@ -332,58 +333,61 @@ namespace CapMachine.Wpf.CanDrive
/// </summary> /// </summary>
public void DBC_Parser(string Path) public void DBC_Parser(string Path)
{ {
//解析DBC文件 lock (_dbcParserLock)
DBCHandle = CAN_DBCParser.DBC_ParserFile(DevHandle, new StringBuilder(Path));
if (DBCHandle == 0)
{ {
Console.WriteLine("Parser DBC File error!"); //解析DBC文件
DbcParserState = false; DBCHandle = CAN_DBCParser.DBC_ParserFile(DevHandle, new StringBuilder(Path));
return; if (DBCHandle == 0)
}
else
{
Console.WriteLine("Parser DBC File success!");
}
ListCanDbcModel.Clear();
//打印DBC里面报文和信号相关信息
int DBCMsgNum = CAN_DBCParser.DBC_GetMsgQuantity(DBCHandle);
for (int i = 0; i < DBCMsgNum; i++)
{
StringBuilder MsgName = new StringBuilder(32);
CAN_DBCParser.DBC_GetMsgName(DBCHandle, i, MsgName);
//Console.WriteLine("Msg.Name = {0}", MsgName);
int DBCSigNum = CAN_DBCParser.DBC_GetMsgSignalQuantity(DBCHandle, MsgName);
StringBuilder Publisher = new StringBuilder(32);
CAN_DBCParser.DBC_GetMsgPublisher(DBCHandle, MsgName, Publisher);
long MsgId;
MsgId = CAN_DBCParser.DBC_GetMsgIDByName(DBCHandle, MsgName);
//Console.Write("Signals:");
for (int j = 0; j < DBCSigNum; j++)
{ {
StringBuilder SigName = new StringBuilder(32); Console.WriteLine("Parser DBC File error!");
CAN_DBCParser.DBC_GetMsgSignalName(DBCHandle, MsgName, j, SigName); DbcParserState = false;
//Console.Write("{0} ", SigName); return;
}
//增加信息数据 else
ListCanDbcModel.Add(new CanDbcModel() {
{ Console.WriteLine("Parser DBC File success!");
MsgName = MsgName.ToString(),
MsgId = "0x" + MsgId.ToString("X8"),
SignalName = SigName.ToString(),
SignalDesc = "",
SignalUnit = "",
SignalRtValue = "",
Publisher = Publisher.ToString()
});
} }
//Console.WriteLine("");
}
//Dbc解析成功 ListCanDbcModel.Clear();
DbcParserState = true;
//打印DBC里面报文和信号相关信息
int DBCMsgNum = CAN_DBCParser.DBC_GetMsgQuantity(DBCHandle);
for (int i = 0; i < DBCMsgNum; i++)
{
StringBuilder MsgName = new StringBuilder(32);
CAN_DBCParser.DBC_GetMsgName(DBCHandle, i, MsgName);
//Console.WriteLine("Msg.Name = {0}", MsgName);
int DBCSigNum = CAN_DBCParser.DBC_GetMsgSignalQuantity(DBCHandle, MsgName);
StringBuilder Publisher = new StringBuilder(32);
CAN_DBCParser.DBC_GetMsgPublisher(DBCHandle, MsgName, Publisher);
long MsgId;
MsgId = CAN_DBCParser.DBC_GetMsgIDByName(DBCHandle, MsgName);
//Console.Write("Signals:");
for (int j = 0; j < DBCSigNum; j++)
{
StringBuilder SigName = new StringBuilder(32);
CAN_DBCParser.DBC_GetMsgSignalName(DBCHandle, MsgName, j, SigName);
//Console.Write("{0} ", SigName);
//增加信息数据
ListCanDbcModel.Add(new CanDbcModel()
{
MsgName = MsgName.ToString(),
MsgId = "0x" + MsgId.ToString("X8"),
SignalName = SigName.ToString(),
SignalDesc = "",
SignalUnit = "",
SignalRtValue = "",
Publisher = Publisher.ToString()
});
}
//Console.WriteLine("");
}
//Dbc解析成功
DbcParserState = true;
}
} }
/// <summary> /// <summary>
@@ -397,33 +401,36 @@ namespace CapMachine.Wpf.CanDrive
for (int i = 0; i < GroupMsg.Count(); i++) for (int i = 0; i < GroupMsg.Count(); i++)
{ {
CanMsg[i] = new USB2CAN.CAN_MSG(); CanMsg[i] = new USB2CAN.CAN_MSG();
CanMsg[i].Data = new Byte[64]; CanMsg[i].Data = new Byte[8];
} }
IntPtr msgPt = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USB2CAN.CAN_MSG))); IntPtr msgPt = IntPtr.Zero;
int Index = 0; try
//循环给MSG赋值数据
foreach (var itemMsg in GroupMsg)
{ {
foreach (var itemSignal in itemMsg) msgPt = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USB2CAN.CAN_MSG)));
int Index = 0;
lock (_dbcParserLock)
{ {
CAN_DBCParser.DBC_SetSignalValue(DBCHandle, new StringBuilder(itemMsg.Key), new StringBuilder(itemSignal.SignalName), itemSignal.SignalCmdValue); //循环给MSG赋值数据
foreach (var itemMsg in GroupMsg)
{
foreach (var itemSignal in itemMsg)
{
CAN_DBCParser.DBC_SetSignalValue(DBCHandle, new StringBuilder(itemMsg.Key), new StringBuilder(itemSignal.SignalName), itemSignal.SignalCmdValue);
}
CAN_DBCParser.DBC_SyncValueToCANMsg(DBCHandle, new StringBuilder(itemMsg.Key), msgPt);
CanMsg[Index] = (USB2CAN.CAN_MSG)Marshal.PtrToStructure(msgPt, typeof(USB2CAN.CAN_MSG));
Index++;
}
}
}
finally
{
if (msgPt != IntPtr.Zero)
{
Marshal.FreeHGlobal(msgPt);
} }
CAN_DBCParser.DBC_SyncValueToCANMsg(DBCHandle, new StringBuilder(itemMsg.Key), msgPt);
CanMsg[Index] = (USB2CAN.CAN_MSG)Marshal.PtrToStructure(msgPt, typeof(USB2CAN.CAN_MSG));
Index++;
} }
//设置信号值
//DBCParser.DBC_SetSignalValue(DBCHandle, new StringBuilder("msg_moto_speed"), new StringBuilder("moto_speed"), 2412);
//DBCParser.DBC_SetSignalValue(DBCHandle, new StringBuilder("msg_oil_pressure"), new StringBuilder("oil_pressure"), 980);
//DBCParser.DBC_SetSignalValue(DBCHandle, new StringBuilder("msg_speed_can"), new StringBuilder("speed_can"), 120);
//通过DBC写入数据后生成CanMsg
//将信号值填入CAN消息里面
//释放申请的临时缓冲区
Marshal.FreeHGlobal(msgPt);
Console.WriteLine(""); Console.WriteLine("");
//发送CAN数据 //发送CAN数据
int SendedNum = USB2CAN.CAN_SendMsg(DevHandle, WriteCANIndex, CanMsg, (uint)CanMsg.Length); int SendedNum = USB2CAN.CAN_SendMsg(DevHandle, WriteCANIndex, CanMsg, (uint)CanMsg.Length);
@@ -492,6 +499,11 @@ namespace CapMachine.Wpf.CanDrive
/// </summary> /// </summary>
public void StartCycleSendMsg() public void StartCycleSendMsg()
{ {
if (CycleSendTask != null && !CycleSendTask.IsCompleted)
{
return;
}
CycleSendTask = Task.Run(async () => CycleSendTask = Task.Run(async () =>
{ {
while (IsCycleSend) while (IsCycleSend)
@@ -504,27 +516,36 @@ namespace CapMachine.Wpf.CanDrive
for (int i = 0; i < GroupMsg.Count(); i++) for (int i = 0; i < GroupMsg.Count(); i++)
{ {
CanMsg[i] = new USB2CAN.CAN_MSG(); CanMsg[i] = new USB2CAN.CAN_MSG();
CanMsg[i].Data = new Byte[64]; CanMsg[i].Data = new Byte[8];
} }
IntPtr msgPtSend = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USB2CAN.CAN_MSG))); IntPtr msgPtSend = IntPtr.Zero;
int Index = 0; try
//循环给MSG赋值数据
foreach (var itemMsg in GroupMsg)
{ {
foreach (var itemSignal in itemMsg) msgPtSend = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USB2CAN.CAN_MSG)));
int Index = 0;
lock (_dbcParserLock)
{ {
CAN_DBCParser.DBC_SetSignalValue(DBCHandle, new StringBuilder(itemMsg.Key), new StringBuilder(itemSignal.SignalName), itemSignal.SignalCmdValue); //循环给MSG赋值数据
foreach (var itemMsg in GroupMsg)
{
foreach (var itemSignal in itemMsg)
{
CAN_DBCParser.DBC_SetSignalValue(DBCHandle, new StringBuilder(itemMsg.Key), new StringBuilder(itemSignal.SignalName), itemSignal.SignalCmdValue);
}
CAN_DBCParser.DBC_SyncValueToCANMsg(DBCHandle, new StringBuilder(itemMsg.Key), msgPtSend);
CanMsg[Index] = (USB2CAN.CAN_MSG)Marshal.PtrToStructure(msgPtSend, typeof(USB2CAN.CAN_MSG));
Index++;
}
}
}
finally
{
if (msgPtSend != IntPtr.Zero)
{
Marshal.FreeHGlobal(msgPtSend);
} }
CAN_DBCParser.DBC_SyncValueToCANMsg(DBCHandle, new StringBuilder(itemMsg.Key), msgPtSend);
CanMsg[Index] = (USB2CAN.CAN_MSG)Marshal.PtrToStructure(msgPtSend, typeof(USB2CAN.CAN_MSG));
Index++;
} }
//通过DBC写入数据后生成CanMsg
//将信号值填入CAN消息里面
//释放申请的临时缓冲区
Marshal.FreeHGlobal(msgPtSend);
Console.WriteLine(""); Console.WriteLine("");
//发送CAN数据 //发送CAN数据
int SendedNum = USB2CAN.CAN_SendMsg(DevHandle, WriteCANIndex, CanMsg, (uint)CanMsg.Length); int SendedNum = USB2CAN.CAN_SendMsg(DevHandle, WriteCANIndex, CanMsg, (uint)CanMsg.Length);
@@ -551,6 +572,11 @@ namespace CapMachine.Wpf.CanDrive
/// </summary> /// </summary>
public void StartCycleReviceCanMsg() public void StartCycleReviceCanMsg()
{ {
if (CycleReviceTask != null && !CycleReviceTask.IsCompleted)
{
return;
}
CycleReviceTask = Task.Run(async () => CycleReviceTask = Task.Run(async () =>
{ {
while (IsCycleRevice) while (IsCycleRevice)
@@ -558,65 +584,81 @@ namespace CapMachine.Wpf.CanDrive
await Task.Delay(ReviceCycle); await Task.Delay(ReviceCycle);
try try
{ {
//另外一个CAN通道读取数据 IntPtr msgPtRead = IntPtr.Zero;
USB2CAN.CAN_MSG[] CanMsgBuffer = new USB2CAN.CAN_MSG[128]; try
//申请数据缓冲区
IntPtr msgPtRead = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USB2CAN.CAN_MSG)) * CanMsgBuffer.Length);
int CanNum = USB2CAN.CAN_GetMsgWithSize(DevHandle, ReadCANIndex, msgPtRead, CanMsgBuffer.Length);
if (CanNum > 0)
{ {
Console.WriteLine("Read CanMsgNum = {0}", CanNum); //另外一个CAN通道读取数据
for (int i = 0; i < CanNum; i++) USB2CAN.CAN_MSG[] CanMsgBuffer = new USB2CAN.CAN_MSG[128];
//申请数据缓冲区
msgPtRead = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USB2CAN.CAN_MSG)) * CanMsgBuffer.Length);
int CanNum = USB2CAN.CAN_GetMsgWithSize(DevHandle, ReadCANIndex, msgPtRead, CanMsgBuffer.Length);
if (CanNum > 0)
{ {
//CanMsgBuffer[i] = (USB2CAN.CAN_MSG)Marshal.PtrToStructure((IntPtr)((UInt32)msgPtRead + i * Marshal.SizeOf(typeof(USB2CAN.CAN_MSG))), typeof(USB2CAN.CAN_MSG)); //有溢出报错 Console.WriteLine("Read CanMsgNum = {0}", CanNum);
CanMsgBuffer[i] = (USB2CAN.CAN_MSG)Marshal.PtrToStructure((IntPtr)(msgPtRead + i * Marshal.SizeOf(typeof(USB2CAN.CAN_MSG))), typeof(USB2CAN.CAN_MSG)); for (int i = 0; i < CanNum; i++)
//Console.WriteLine("CanMsg[{0}].ID = 0x{1}", i, CanMsgBuffer[i].ID.ToString("X8"));
//Console.WriteLine("CanMsg[{0}].TimeStamp = {1}", i, CanMsgBuffer[i].TimeStamp);
//Console.Write("CanMsg[{0}].Data = ", i);
for (int j = 0; j < CanMsgBuffer[i].DataLen; j++)
{ {
Console.Write("{0} ", CanMsgBuffer[i].Data[j].ToString("X2")); //CanMsgBuffer[i] = (USB2CAN.CAN_MSG)Marshal.PtrToStructure((IntPtr)((UInt32)msgPtRead + i * Marshal.SizeOf(typeof(USB2CAN.CAN_MSG))), typeof(USB2CAN.CAN_MSG)); //有溢出报错
CanMsgBuffer[i] = (USB2CAN.CAN_MSG)Marshal.PtrToStructure((IntPtr)(msgPtRead + i * Marshal.SizeOf(typeof(USB2CAN.CAN_MSG))), typeof(USB2CAN.CAN_MSG));
//Console.WriteLine("CanMsg[{0}].ID = 0x{1}", i, CanMsgBuffer[i].ID.ToString("X8"));
//Console.WriteLine("CanMsg[{0}].TimeStamp = {1}", i, CanMsgBuffer[i].TimeStamp);
//Console.Write("CanMsg[{0}].Data = ", i);
for (int j = 0; j < CanMsgBuffer[i].DataLen; j++)
{
Console.Write("{0} ", CanMsgBuffer[i].Data[j].ToString("X2"));
}
//Console.WriteLine("");
//报文给高速记录的服务
HighSpeedDataService.AppendOrUpdateMsg(new Models.HighSpeed.CommMsg()
{
Category = "CAN",
MsgInfo = "0x" + CanMsgBuffer[i].ID.ToString("X8"),
MsgData = BitConverter.ToString(CanMsgBuffer[i].Data),
Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
});
} }
//Console.WriteLine(""); }
else if (CanNum == 0)
{
//Console.WriteLine("No CAN data!");
}
else
{
//Console.WriteLine("Get CAN data error!");
}
Console.WriteLine("");
//报文给高速记录的服务 if (CanNum > 0)
HighSpeedDataService.AppendOrUpdateMsg(new Models.HighSpeed.CommMsg() {
lock (_dbcParserLock)
{ {
Category = "CAN", //将CAN消息数据填充到信号里面用DBC解析数据
MsgInfo = "0x" + CanMsgBuffer[i].ID.ToString("X8"), CAN_DBCParser.DBC_SyncCANMsgToValue(DBCHandle, msgPtRead, CanNum);
MsgData = BitConverter.ToString(CanMsgBuffer[i].Data),
Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") //循环获取消息的数据
}); foreach (var item in ListCanDbcModel)
{
//有配置的名称的,认为是有用的,则需要读取数据
//if (!string.IsNullOrEmpty(item.Name))
//{
var valueSb = new StringBuilder(64);
CAN_DBCParser.DBC_GetSignalValueStr(DBCHandle, new StringBuilder(item.MsgName), new StringBuilder(item.SignalName), valueSb);
item.SignalRtValueSb = valueSb;
Console.Write(valueSb.ToString());
//}
}
}
} }
} }
else if (CanNum == 0) finally
{ {
//Console.WriteLine("No CAN data!"); if (msgPtRead != IntPtr.Zero)
{
//释放数据缓冲区,必须释放,否则程序运行一段时间后会报内存不足
Marshal.FreeHGlobal(msgPtRead);
}
} }
else
{
//Console.WriteLine("Get CAN data error!");
}
Console.WriteLine("");
//将CAN消息数据填充到信号里面用DBC解析数据
CAN_DBCParser.DBC_SyncCANMsgToValue(DBCHandle, msgPtRead, CanNum);
//循环获取消息的数据
foreach (var item in ListCanDbcModel)
{
//有配置的名称的,认为是有用的,则需要读取数据
//if (!string.IsNullOrEmpty(item.Name))
//{
CAN_DBCParser.DBC_GetSignalValueStr(DBCHandle, new StringBuilder(item.MsgName), new StringBuilder(item.SignalName), ValueSb);
item.SignalRtValueSb = ValueSb;
Console.Write(ValueSb.ToString());
//}
}
//释放数据缓冲区,必须释放,否则程序运行一段时间后会报内存不足
Marshal.FreeHGlobal(msgPtRead);
Thread.Sleep(10); Thread.Sleep(10);
////获取信号值并打印出来 ////获取信号值并打印出来
@@ -662,6 +704,11 @@ namespace CapMachine.Wpf.CanDrive
/// </summary> /// </summary>
public void StartPrecisionCycleSendMsg() public void StartPrecisionCycleSendMsg()
{ {
if (CycleSendTask != null && !CycleSendTask.IsCompleted)
{
return;
}
// 创建取消标记源 用于控制任务的取消 允许在需要时通过取消令牌来优雅停止任务 // 创建取消标记源 用于控制任务的取消 允许在需要时通过取消令牌来优雅停止任务
var cancellationTokenSource = new CancellationTokenSource(); var cancellationTokenSource = new CancellationTokenSource();
var token = cancellationTokenSource.Token; var token = cancellationTokenSource.Token;
@@ -742,28 +789,36 @@ namespace CapMachine.Wpf.CanDrive
for (int i = 0; i < GroupMsg.Count(); i++) for (int i = 0; i < GroupMsg.Count(); i++)
{ {
CanMsg[i] = new USB2CAN.CAN_MSG(); CanMsg[i] = new USB2CAN.CAN_MSG();
CanMsg[i].Data = new Byte[64]; CanMsg[i].Data = new Byte[8];
} }
IntPtr msgPtSend = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USB2CAN.CAN_MSG))); IntPtr msgPtSend = IntPtr.Zero;
int Index = 0; try
//循环给MSG赋值数据
foreach (var itemMsg in GroupMsg)
{ {
foreach (var itemSignal in itemMsg) msgPtSend = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USB2CAN.CAN_MSG)));
int Index = 0;
lock (_dbcParserLock)
{ {
CAN_DBCParser.DBC_SetSignalValue(DBCHandle, new StringBuilder(itemMsg.Key), new StringBuilder(itemSignal.SignalName), itemSignal.SignalCmdValue); //循环给MSG赋值数据
foreach (var itemMsg in GroupMsg)
{
foreach (var itemSignal in itemMsg)
{
CAN_DBCParser.DBC_SetSignalValue(DBCHandle, new StringBuilder(itemMsg.Key), new StringBuilder(itemSignal.SignalName), itemSignal.SignalCmdValue);
}
CAN_DBCParser.DBC_SyncValueToCANMsg(DBCHandle, new StringBuilder(itemMsg.Key), msgPtSend);
CanMsg[Index] = (USB2CAN.CAN_MSG)Marshal.PtrToStructure(msgPtSend, typeof(USB2CAN.CAN_MSG));
Index++;
}
}
}
finally
{
if (msgPtSend != IntPtr.Zero)
{
Marshal.FreeHGlobal(msgPtSend);
} }
CAN_DBCParser.DBC_SyncValueToCANMsg(DBCHandle, new StringBuilder(itemMsg.Key), msgPtSend);
CanMsg[Index] = (USB2CAN.CAN_MSG)Marshal.PtrToStructure(msgPtSend, typeof(USB2CAN.CAN_MSG));
Index++;
} }
//通过DBC写入数据后生成CanMsg
//将信号值填入CAN消息里面
//释放申请的临时缓冲区
Marshal.FreeHGlobal(msgPtSend);
//发送CAN数据 //发送CAN数据
int SendedNum = USB2CAN.CAN_SendMsg(DevHandle, WriteCANIndex, CanMsg, (uint)CanMsg.Length); int SendedNum = USB2CAN.CAN_SendMsg(DevHandle, WriteCANIndex, CanMsg, (uint)CanMsg.Length);
@@ -878,12 +933,32 @@ namespace CapMachine.Wpf.CanDrive
/// </summary> /// </summary>
public void CloseDevice() public void CloseDevice()
{ {
IsCycleRevice = false;
IsCycleSend = false;
try
{
StopCycleSendMsg();
}
catch
{
}
try
{
var task = CycleReviceTask;
if (task != null && !task.IsCompleted)
{
task.Wait(TimeSpan.FromMilliseconds(ReviceCycle + 500));
}
}
catch
{
}
//关闭设备 //关闭设备
USB_DEVICE.USB_CloseDevice(DevHandle); USB_DEVICE.USB_CloseDevice(DevHandle);
OpenState = false; OpenState = false;
DbcParserState = false; DbcParserState = false;
IsCycleRevice = false;
IsCycleSend = false;
} }
} }

View File

@@ -230,7 +230,7 @@ namespace CapMachine.Wpf.Services
if (ListCanDbcModel.Count > 0) if (ListCanDbcModel.Count > 0)
{ {
ToomossCanDrive.IsCycleRevice = true; ToomossCanDrive.IsCycleRevice = true;
ToomossCanDrive.StartPrecisionCycleSendMsg(); ToomossCanDrive.StartCycleReviceCanMsg();
} }
else else
{ {

View File

@@ -1119,18 +1119,16 @@ namespace CapMachine.Wpf.Services
while (ThreadEnable) while (ThreadEnable)
{ {
cycleCount++; cycleCount++;
if (cycleCount % 20 == 0) // 每10秒记录一次 if (cycleCount % 100 == 0)
{ {
LogService.Info($"RtScanDeviceStart 循环计数: {cycleCount}"); LogService.Info($"RtScanDeviceStart 循环计数: {cycleCount}");
} }
//await Task.Delay(5); await Task.Delay(50);
await Task.CompletedTask;
DiagnosticsTime.Reset(); DiagnosticsTime.Reset();
DiagnosticsTime.Start(); DiagnosticsTime.Start();
try try
{ {
LogService.Debug($"RtScanDeviceStart 开始扫描周期 {cycleCount}");
//TagInfo.RtValue.Value++; //TagInfo.RtValue.Value++;
//var data = TagManger.DicTags["转速"].ValueType.Name; //var data = TagManger.DicTags["转速"].ValueType.Name;
@@ -1186,7 +1184,6 @@ namespace CapMachine.Wpf.Services
try try
{ {
var speedValue = CanDriveService.GetDbcSpeedValueBySpeedName("通讯转速"); var speedValue = CanDriveService.GetDbcSpeedValueBySpeedName("通讯转速");
LogService.Debug($"RtScanDeviceStart 读取CAN通讯转速: {speedValue}");
SiemensDrive.Write(itemTag.Value.PVAddress, (short)speedValue); SiemensDrive.Write(itemTag.Value.PVAddress, (short)speedValue);
} }
catch (Exception ex) catch (Exception ex)
@@ -1213,7 +1210,6 @@ namespace CapMachine.Wpf.Services
try try
{ {
var voltageValue = CanDriveService.GetDbcValueByName("通讯母线电压"); var voltageValue = CanDriveService.GetDbcValueByName("通讯母线电压");
LogService.Debug($"RtScanDeviceStart 读取CAN通讯母线电压: {voltageValue}");
SiemensDrive.Write(itemTag.Value.PVAddress, (short)(voltageValue * itemTag.Value.Precision)); SiemensDrive.Write(itemTag.Value.PVAddress, (short)(voltageValue * itemTag.Value.Precision));
} }
catch (Exception ex) catch (Exception ex)
@@ -1240,7 +1236,6 @@ namespace CapMachine.Wpf.Services
try try
{ {
var currentValue = CanDriveService.GetDbcValueByName("通讯母线电流"); var currentValue = CanDriveService.GetDbcValueByName("通讯母线电流");
LogService.Debug($"RtScanDeviceStart 读取CAN通讯母线电流: {currentValue}");
SiemensDrive.Write(itemTag.Value.PVAddress, (short)(currentValue * itemTag.Value.Precision)); SiemensDrive.Write(itemTag.Value.PVAddress, (short)(currentValue * itemTag.Value.Precision));
} }
catch (Exception ex) catch (Exception ex)
@@ -1267,7 +1262,6 @@ namespace CapMachine.Wpf.Services
try try
{ {
var phaseCurrentValue = CanDriveService.GetDbcValueByName("通讯相电流"); var phaseCurrentValue = CanDriveService.GetDbcValueByName("通讯相电流");
LogService.Debug($"RtScanDeviceStart 读取CAN通讯相电流: {phaseCurrentValue}");
SiemensDrive.Write(itemTag.Value.PVAddress, (short)(phaseCurrentValue * itemTag.Value.Precision)); SiemensDrive.Write(itemTag.Value.PVAddress, (short)(phaseCurrentValue * itemTag.Value.Precision));
} }
catch (Exception ex) catch (Exception ex)
@@ -1294,7 +1288,6 @@ namespace CapMachine.Wpf.Services
try try
{ {
var powerValue = CanDriveService.GetDbcValueByName("通讯功率"); var powerValue = CanDriveService.GetDbcValueByName("通讯功率");
LogService.Debug($"RtScanDeviceStart 读取CAN通讯功率: {powerValue}");
SiemensDrive.Write(itemTag.Value.PVAddress, (short)(powerValue * itemTag.Value.Precision)); SiemensDrive.Write(itemTag.Value.PVAddress, (short)(powerValue * itemTag.Value.Precision));
} }
catch (Exception ex) catch (Exception ex)
@@ -1321,7 +1314,6 @@ namespace CapMachine.Wpf.Services
try try
{ {
var tempValue = CanDriveService.GetDbcValueByName("通讯芯片温度"); var tempValue = CanDriveService.GetDbcValueByName("通讯芯片温度");
LogService.Debug($"RtScanDeviceStart 读取CAN通讯芯片温度: {tempValue}");
SiemensDrive.Write(itemTag.Value.PVAddress, (short)(tempValue * itemTag.Value.Precision)); SiemensDrive.Write(itemTag.Value.PVAddress, (short)(tempValue * itemTag.Value.Precision));
} }
catch (Exception ex) catch (Exception ex)
@@ -1365,7 +1357,6 @@ namespace CapMachine.Wpf.Services
{ {
var dbcValue = CanDriveService.GetDbcValueByName(itemTag.Value.NameNoUnit); var dbcValue = CanDriveService.GetDbcValueByName(itemTag.Value.NameNoUnit);
itemTag.Value.EngPvValue = dbcValue; itemTag.Value.EngPvValue = dbcValue;
LogService.Debug($"RtScanDeviceStart 回读CAN数据 {itemTag.Value.NameNoUnit}: {dbcValue}");
} }
catch (Exception ex) catch (Exception ex)
{ {