巴基斯坦通信公司 _Campbellsci论坛问答

为什么即使选中了“暂停时钟更新”,LoggerNet仍每隔20秒发送一次时钟命令?此外,是否可以设置此传输间隔?谢谢


";2009-11-11下午5:34:02”";PakBusPort_ 2”";S”";发送消息”";src:4094〃";dest:20”";原型:BMP5”";类型:0x17”";tran:153〃;

巴基斯坦通信公司
_Campbellsci论坛问答

";2009-11-11下午5:34:02”";PakBusPort_ 2”";S”";接收消息”";src:20〃";dest:4094”";原型:BMP5”";类型:0x97”";tran:153〃;

";2009-11-11下午5:34:02”";Met CR1000”";S”";收到BMP5消息”";类型:0x97”";管理通信资源“;

";2009-11-11下午5:34:22”";PakBusPort_ 2”";S”";发送消息”";src:4094〃";dest:20”";原型:BMP5”";类型:0x17”";tran:157〃;

";2009-11-11下午5:34:22”";PakBusPort_ 2”";S”";接收消息”";src:20〃";dest:4094”";原型:BMP5”";类型:0x97”";tran:157〃;

";2009-11-11下午5:34:22”";Met CR1000”";S”";收到BMP5消息”";类型:0x97”";管理通信资源“;

新对话如下:

大多数PakBus设备,尤其是数据记录器,都有40秒的时间用于PakBus低级别会话。如果超时达到,并且没有收到来自该会话端点的延长超时的消息,则数据记录器将关闭会话。这意味着什么实际上取决于链路,但对于电话调制解调器连接,这可能意味着记录器将降低其调制解调器启用线,这反过来将导致远程调制解调器挂断其连接。

LoggerNet发送的第二十二个间隔时钟检查命令是为了在第四十二个超时的情况下维护会话。我还要进一步指出,只有在LoggerNet没有发送任何其他具有类似效果的消息(如数据收集命令等)的情况下,才应发送这些消息。

新对话如下:

谢谢,jtrauntvein!此保活消息的传输间隔和数据记录器超时是否可以更改?

我实际遇到的问题是与第二架CR1000建立通信的长时间延迟。(两个CR1000通过RS232端口连接,使用115200波特。)从下面的日志中可以看到,这大约需要35秒。有什么缩短它的方法吗?

我不了解的具体情况包括:

1.为什么CR1000没有响应第一个时钟检查命令事务153?

2.为什么Loggernet在34:37重新发送时钟检查命令事务153?此外,为什么这次的时间间隔只有15秒?


";2009-11-11下午5:34:02”";ComPort”";S”";打开通信端口”";COM17”";115200〃;

";2009-11-11下午5:34:02”";ComPort”";S”";“提供者打开”";115200〃;

";2009-11-11下午5:34:02”";PakBusPort_ 2”";S”";发送消息”";src:4094〃";dest:10”";原型:PakCtrl”";类型:0x09”";tran:154〃;

";2009-11-11下午5:34:02”";PakBusPort_ 2”";S”";接收消息”";src:10〃";dest:4094”";原型:PakCtrl”";类型:0x89”";tran:154〃;

";2009-11-11下午5:34:02”";PakBusPort_ 2”";S”";发送消息”";src:4094〃";dest:10”";原型:PakCtrl”";类型:0x0a”";tran:155〃;

";2009-11-11下午5:34:02”";PakBusPort_ 2”";S”";接收消息”";src:10〃";dest:4094”";原型:PakCtrl”";类型:0x8a”";tran:155〃;

";2009-11-11下午5:34:02”";PakBusPort_ 2”";S”";发送消息”";src:4094〃";dest:10”";原型:PakCtrl”";类型:0x0b”";tran:156〃;

";2009-11-11下午5:34:02”";PakBusPort_ 2”";S”";发送消息”";src:4094〃";dest:20”";原型:BMP5”";类型:0x17”";tran:153〃;

";2009-11-11下午5:34:22”";PakBusPort_ 2”";S”";发送消息”";src:4094〃";dest:20”";原型:BMP5”";类型:0x17”";tran:157〃;

";2009-11-11下午5:34:22”";PakBusPort_ 2”";S”";接收消息”";src:20〃";dest:4094”";原型:BMP5”";类型:0x97”";tran:157〃;

";2009-11-11下午5:34:22”";Met CR1000”";S”";收到BMP5消息”";类型:0x97”";管理通信资源“;

";2009-11-11下午5:34:37”";Met CR1000”";W”";交易失败”";超时或资源错误”";检查/设置时钟”;

";2009-11-11下午5:34:37”";PakBusPort_ 2”";S”";接收消息”";src:20〃";dest:4094”";原型:BMP5”";类型:0x97”";tran:153〃;

";2009-11-11下午5:34:37”";Met CR1000”";S”";收到BMP5消息”";类型:0x97”";检查/设置时钟”;

";2009-11-11下午5:34:37”";PakBusPort_ 2”";S”";发送消息”";src:4094〃";dest:10”";原型:PakCtrl”";空的“;

新对话如下:

考虑到第一次通信尝试失败,但第二次似乎工作得很快,我认为第二个记录器(地址20)的自动波特率同步速度不够快,无法检测输入。请注意,由于日志仅从LoggerNet的角度显示了正在发生的事情,因此它不会显示两个记录器之间正在发生的情况。通过将两个记录器上RS232端口的波特率设置从“0”更改为“0”,可以得到更好的结果;115200自动“;至“;115200固定”;。

新对话如下:

此外,这里的超时是35秒(两个时钟事务153之间的时间间隔)还是15秒?这确实是我创建这个线程的原因。如果超时时间太长且不可更改,记录器一次未命中命令将造成35秒的延迟!另一件值得一提的事情是,这种现象是可重复的。每次连接都需要相同的时间。

新对话如下:

昨天,我与负责CR1000操作系统的一位工程师进行了交谈,他告诉我,他们最近发现RS232端口存在问题,这可能导致传输的第一个字节被忽略,因为当传输第一次到达时,CPU处于睡眠状态。我相信这可以解释你所看到的。为了避免这种情况,您需要始终保持RS232端口处于活动状态(这可以通过设置来完成),但目前,在新的操作系统能够解决CPU问题之前,这是不起作用的。

同时,您可以通过使用不同的接口(如COM1(控制端口))或使用SC932A或SC105使用控制端口进行通信来解决此问题。

新对话如下:

OS18解决了这个问题吗?
我在变更日志中找不到它。

新对话如下:

不,在睡眠状态下丢失字符的问题是在OS18发布后发现的。这个问题很模糊,可能不是问题的核心,因为通常情况下,记录器会完全关闭串行端口,并在大约40秒的超时后进入睡眠状态。在这种状态下,字符在第一次通信时总是会丢失,这就是为什么Pakbus协议会发送一个特殊的拨号数据包来唤醒记录器并同步波特率。

最近发现的问题通常只影响其他协议(DNP3和Modbus),在这些协议中,用户已永久打开串行端口,并且不希望丢失初始字符。即使记录器上的串行端口在40秒后仍然进入睡眠状态,损坏了接收到的第一个数据包。这些协议通常通过重试来克服这个问题,所以这个问题一直隐藏到现在。

这可能会影响你,也可能不会影响你。充当路由器的记录器(如果是,请参见下文)应发送一个拨号数据包,以便在连接之前未处于活动状态时将其唤醒。正如乔恩所说,你不会在这些日志中看到这一点。

分享到:

原文链接:,转发请注明来源!
海洋仪器网 仪器使用 巴基斯坦通信公司 _Campbellsci论坛问答
「巴基斯坦通信公司 _Campbellsci论坛问答」评论列表

发表评论