关于S7通讯传送时间的问题
今天,在找答案栏目中,看到有这样一个贴子,说如何检测某一种通讯的传输率,如S7通讯。刚好,晚上做了一个200 SMART PLC与S7-1200 PLC的通讯,借此机会尝试着测试一下S7通讯下的通讯速率。
测试内容:
把200 SMART PLC作为客户机,S7-1215C作为服务器作为测试对象。
在200 SMART侧使能一个V区的位,“同时”出发BGN_ITIME指令,这个位同时也发送到服务器侧的PLC,当服务器侧的PLC接收到这个“位”数据后,原值变址返回到200 SMART PLC侧,来关闭这个出发BGN_ITIME指令的位,这个过程除2,从理论上应该是单次S7传输的速率了(包含这2台PLC之间的程序扫描时间),假设验证用是V0.0触发使能的。
程序:200 SMART PLC侧;

S7-1215C PLC侧:

在200 SMART PLC侧创建一个状态图表并下载程序到PLC:

使能V0.0,看VD104的值。

VD104 = 66,相当于VB107 =66,重复触发V0.0,看重复触发时通讯的时间差异,这个值是一个变化了的值。这个通讯所消耗的时间与双方PLC侧的扫描周期及时序有关,也就是我开始看到问题后答复的那样,这个数据仅仅是一个随机的数据,而不是纯粹的通讯数据交换时间值,因为,用PLC来测试这个通讯时间,是无法回避PLC的扫描工作机制,除非用专业的仪器设备来测试,另外,触发的时序仍然是一个随机时间。
关于BGN_ITIME/CAL_ITIME指令的精度,官方给出明确的答案是最大间隔1mS的分辨率,所以,被测试的通讯过程时间最小也是一个mS的单位级,用这个方式无法准确验证这个通讯速率过程值。