137 lines
4.9 KiB
C#
137 lines
4.9 KiB
C#
|
|
using Rovinj.Device;
|
|||
|
|
using Rovinj.Log;
|
|||
|
|
using Rovinj.Reader;
|
|||
|
|
using Rovinj.Reader.Silion;
|
|||
|
|
using Rovinj.Tunnel;
|
|||
|
|
using Rovinj.Tunnel.Plc;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.IO;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
using TunnelNuget;
|
|||
|
|
using static TunnelNuget.InfoParams;
|
|||
|
|
|
|||
|
|
namespace UITunnel
|
|||
|
|
{
|
|||
|
|
internal class Program
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 模拟连接隧道机
|
|||
|
|
/// </summary>
|
|||
|
|
static void Main(string[] args)
|
|||
|
|
{
|
|||
|
|
//创建日志目录
|
|||
|
|
if (!Directory.Exists("log"))
|
|||
|
|
Directory.CreateDirectory("log");
|
|||
|
|
|
|||
|
|
//初始化日志组件(仅供测试使用)
|
|||
|
|
Rovinj.Log.LogHelper.InitLogger(new Rovinj.Log.TextLog($"log\\{DateTime.Now:yyyy-MM-dd}.log"));
|
|||
|
|
|
|||
|
|
//隧道机业务层
|
|||
|
|
RfidTunnel rfidTunnel = new RfidTunnel();
|
|||
|
|
|
|||
|
|
////配置RFID读写器参数
|
|||
|
|
#region 自定义 配置RFID读写器参数
|
|||
|
|
//SilionReaderConfig readerConfig = new SilionReaderConfig()
|
|||
|
|
//{
|
|||
|
|
// Qvalue = 5,
|
|||
|
|
// Session = 1,
|
|||
|
|
// ReadTID = false,
|
|||
|
|
// Target = 0,
|
|||
|
|
// RfMode = 1,
|
|||
|
|
// IsFastRead = true,
|
|||
|
|
// QuickModeType = 3,
|
|||
|
|
// Antennas = new List<SilionAntennaConfig>(),
|
|||
|
|
//};
|
|||
|
|
//double power = 30; //功率
|
|||
|
|
//int antCount = 4; //4个天线
|
|||
|
|
|
|||
|
|
////根据用户输入的天线数量(默认 4 个),给每个天线端口配置功率和启用状态。
|
|||
|
|
//for (int i = 0; i < antCount; i++)
|
|||
|
|
//{
|
|||
|
|
// readerConfig.Antennas.Add(new SilionAntennaConfig()
|
|||
|
|
// {
|
|||
|
|
// IsEnabled = true,
|
|||
|
|
// PortNumber = (ushort)(i + 1),
|
|||
|
|
// TxPowerInDbm = power
|
|||
|
|
// });
|
|||
|
|
//}
|
|||
|
|
#endregion
|
|||
|
|
var readerParams = new SilionReaderParams
|
|||
|
|
{
|
|||
|
|
QValue = 5,
|
|||
|
|
Session = 1,
|
|||
|
|
ReadTID = false,
|
|||
|
|
Target = 0,
|
|||
|
|
RfMode = 1,
|
|||
|
|
IsFastRead = true,
|
|||
|
|
QuickModeType = 3,
|
|||
|
|
AntCount = 4,
|
|||
|
|
PowerDbm = 30
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
SilionReaderConfig readerConfig = SilionReaderFactory.Create(readerParams);
|
|||
|
|
|
|||
|
|
#region 配置PLC连接方式
|
|||
|
|
|
|||
|
|
//ConnectionConfig plcConnectionConfig = new ConnectionConfig();
|
|||
|
|
//plcConnectionConfig.ConnectionMode = ConnectionMode.Network; //网口连接模式
|
|||
|
|
//plcConnectionConfig.NetworkAddress = "192.168.1.250"; //PLC IP地址
|
|||
|
|
//plcConnectionConfig.NetworkPort = 502; //PLC 端口号
|
|||
|
|
#endregion
|
|||
|
|
var PlcParameters = new PlcConnectionParams
|
|||
|
|
{
|
|||
|
|
Address = "192.168.1.250",
|
|||
|
|
Mode = ConnectionMode.Network,
|
|||
|
|
Port = 502
|
|||
|
|
};
|
|||
|
|
ConnectionConfig plcConnectionConfig = PlcConnectionFactory.Create(PlcParameters);
|
|||
|
|
|
|||
|
|
#region 配置读写器连接方式
|
|||
|
|
|
|||
|
|
//ConnectionConfig readerConnectionConfig = new ConnectionConfig();
|
|||
|
|
//readerConnectionConfig.Args = new object[] { antCount }; //天线数量,默认是4个天线,支持1,2,4,8,16
|
|||
|
|
//readerConnectionConfig.ConnectionMode = ConnectionMode.Network; //网口连接模式
|
|||
|
|
//readerConnectionConfig.NetworkAddress = "192.168.1.100";
|
|||
|
|
#endregion
|
|||
|
|
var ReaderParameters = new ReaderConnectionParams
|
|||
|
|
{
|
|||
|
|
Args = new object[] { 4 },
|
|||
|
|
Mode = ConnectionMode.Network,
|
|||
|
|
Address = "192.168.1.100"
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
ConnectionConfig readerConnectionConfig = ReaderConnectionFactory.Create(ReaderParameters);
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//封装成隧道配置 根据用户选择,判断是三菱还是西门子 PLC。
|
|||
|
|
TunnelConfig tunnelConfig = new TunnelConfig()
|
|||
|
|
{
|
|||
|
|
PlcType = PlcType.Mitsubishi_FX5U, //PLC类型
|
|||
|
|
PlcConnectionConfig = plcConnectionConfig, //PLC连接配置
|
|||
|
|
ReaderConnectionConfig = readerConnectionConfig, //读写器连接配置
|
|||
|
|
ReaderConfig = readerConfig, //读写器配置
|
|||
|
|
ReaderType = Rovinj.Tunnel.Reader.ReaderType.Silion //读写器类型
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//西门子PLC暂时不支持使用串口的通讯方式
|
|||
|
|
if ((tunnelConfig.PlcType == PlcType.Mitsubishi_FX5U || tunnelConfig.PlcType == PlcType.Siemens)
|
|||
|
|
&& tunnelConfig.PlcConnectionConfig.ConnectionMode != ConnectionMode.Network)
|
|||
|
|
{
|
|||
|
|
LogHelper.Error("暂不支持的连接方式!");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//是否连接成功
|
|||
|
|
bool result = rfidTunnel.ConnectTunnel(readerConfig, plcConnectionConfig, tunnelConfig);
|
|||
|
|
if (result)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|