Open bamboo98 opened 1 year ago
public FxAddress (string tagName, ControllerTypeConst controllerType) 中switch的default应修改为Int16,此前默认的Bin模式会在计算D寄存器地址时额外/8,这是错误的
public FxAddress (string tagName, ControllerTypeConst controllerType)
default: _AddressLayoutType = FxAddressLayoutType.AddressLayoutInt16; break;
public static string Make(FxCommandConst cmd, FxAddress addr, int length) 中的sb.Append(addr.ToAddressHexString());似乎是Byte需要交换高低位,而不是Bin?
public static string Make(FxCommandConst cmd, FxAddress addr, int length)
sb.Append(addr.ToAddressHexString());
/// 返回标准格式的地址字符串,用于MOD-BUS协议控制命令中的“地址”部分 /// 注意:地址需要交换高低字节 /// </summary> public string ToAddressHexString () { uint addr = _UniformAddr; if(_AddressLayoutType == FxAddressLayoutType.AddressLayoutByte) { addr = ((_UniformAddr >> 8) & 0xff) | ((_UniformAddr & 0xff) << 8); } return string.Format("{0:X4}", addr); }
public static string ConvertToString<T>(List<uint> data) 中的FxConvert.DecToHex后需要再进行一次高低字节交换
public static string ConvertToString<T>(List<uint> data)
测试PLC型号是FX3GA
public FxAddress (string tagName, ControllerTypeConst controllerType)
中switch的default应修改为Int16,此前默认的Bin模式会在计算D寄存器地址时额外/8,这是错误的public static string Make(FxCommandConst cmd, FxAddress addr, int length)
中的sb.Append(addr.ToAddressHexString());
似乎是Byte需要交换高低位,而不是Bin?public static string ConvertToString<T>(List<uint> data)
中的FxConvert.DecToHex后需要再进行一次高低字节交换测试PLC型号是FX3GA