目前正在编写协议栈的程序。但是我实在看不懂那个 transportClass_trigger 这个属性和 EPR(期望报文速率)这个属性。 1.对于 transportClass_trigger 我想请问 那个 client 和 server 是如何确定的,还有那个 class 我看协议也看不明白。比如我得 4 个模拟量输入和 4 个开关量输出以及两个模拟量输出都用 I/O 轮循连接。但是我怎么不知道这个连接的 transportClass_trigger 这个属性值怎么确定! 2.EPR 中说要是 clock resolution 的整数倍。 请问什么是可以用的时钟分辨率阿?还请详细说一下这个属性的用法。我实在是看胡涂了! 我是开发预定义主从连接的组 2 从站接口!请大家帮忙讲解一下吧!谢谢! awa405 1. transportClass_trigger 这个属性用来定义连接仅为生产或仅为消费还是生产和消费两 者都有。一般 Client 是主站,Server 是从站。如果 4 个模拟量输入和 4 个开关量输出 以 及 两 个 模 拟 量 输 出 都 用 I/O 轮 循 连 接 , 而 且 你 是 从 站 , 所 以 我 认 为 ; transportClass_trigger=1 xxx 0000 方向=服务器 生产触发器=忽略 传输分类=0,只消 费数据, 这是因为你的从站设备在 POLL 模式下, 不会主动生产数据, 只有在主站 POLL 命令的回应时,才会发送报文。 2.EPR 是指期望的打包速率,这个值跟你系统的看门 狗复位时间有关。可用的时钟频率就是你系统的一个指令周期的倒数,这个属性一般为 毫秒级,而且是向上原理,如果
系统支持 10ms,设置值 5ms,则最终设置成 10ms;如 果系统支持 10ms,设置 100ms,则最终设置成 100ms。在显式信息连接内该属性的缺 省值是 2500 (2500 毫秒),在 I/O 连接内的缺省值为 0。
谢谢 awa405 但是我还有下面几点疑问! 对于第一个问题我还是不大清楚那个方向和 class。 因为我看到我师姐(我师姐已经
毕业了)得
程序中把用于 8 个开关量输入得从站 I/O 状态改 变连接设置为 0 001 0000 而那个显性报文连接设置为 1 000 0011。那个用于 4 个模拟量 输入,2 个模拟量输出,4 个开关量输出得 I/O 轮循连接设置为 1 000 0010。请问这怎么解 释阿?还有您说,从站在 poll 模式下不会主动产生数据,可是如果开发一个预定义得主从 连接得组 2 从站,从站不是任何时候都不能主动发报文吗?除了那个重复 MAC_ID 检测!
纠正 awa405 的一个错误: EPR 是设置值的 4 倍,默认值为 2500,也就是 10 秒。不管是 显式信息连接还是 I/O 连接,在连接建立的时候的 Timeout Timer 的初值应该是 2500 和设 定值两者之间大的一个。因此对刚 allocate 的 I/O 连接,应该马上设置其 EPR 值,一般设 定值在 100,也就是 0.4 秒比较合适。
gongkongedit
1、关于组 2 从站只支持 poll 连接的设备,确实无法主动上报
数据!如果你要想主动上报, 必须支持 cos/cycle! 2、个人认为 awa405 对 transportClass_trigger 的理解可能有问题!当 中得 class 只决定于是否生产数据,而不是是否能主动生产数据,因此该值应该设为:1 *** 0010,或 1 *** 0011. 3、以上是个人理解! 1、关于组 2 从站只支持 poll 连接的设备,确实无法主动上报数据!如果你要想主动上报, 必须支持 cos/cycle! 2、个人认为 awa405 对 transportClass_trigger 的理解可能有
问题!当 中得 class 只决定于是否生产数据,而不是是否能主动生产数据,因此该值应该设为:1 *** 0010,或 1 *** 0011. 3、以上是个人理解!
远 方
我认为这个部分是要看你自己的设备的
设计方式,主要是数据的路径和 Link 与 Application 之间的关系. 方向为 1(server),对于从站没有问题; 而对于 server,第一种情况:数据只有 input data,则 PTB=ignored,TCB=0;则值为 0X80; 第二种情况:数据到了 LINK CONSUMER 后不先送到 APPLICATION,就直接通过 LINK PRODUCER 回应了 MASTER,然后再送到 APPLICATOIN,则 PTB=ignored,TCB=2,则值为 0X82; 第三种情况:数据到了 LINK CONSUMER 后,先送到 APPLICATION 处理,APPLICATION 将回应数据送回到 LINK PRODUCER,此时 PTB=ignored,TCB=3,则值为 0X83; 那你的设备是如何处理的呢?? 对号 入座喽. 我的处理是 0X83:)