作者 | 主题 |
---|---|
青峰明月 游士 经验值: 169 发帖数: 32 精华帖: 0 |
楼主 2021-12-28 10:15:29
主题:烦请各位大神 解读一下 这段批量读取和写入的程序段(IO子站) 预祝大家新年快乐 这是一个很不错的功能块,虽然我看不懂,但是我觉得功能还是很强大的。 FC25 批量读取 和 写入远程子站的数据, 我有几个疑问点: 第1,这个数据读取和写入的实参是什么? 第2,他是如何通过STL语言实现批零读取和写入的? 下面介绍一下, 输入的点是硬件组态的地址,然后INT转换WORD,左移3位编程指针寻址格式。 STL语言一顿操作如猛虎,然后通过SFC 14 系统功能块实现批量读取。 为了尊重他人劳动成果,下面就不将全部程序分析出来,只是拿出批量读的部分。肯请各位大神指点一下。 其中 变量 POINTEUR_ECRIT 为临时变量,ANY类型,为SFC14的输出值。 变量PROG_ADR_LECT_W 为输入值,为临时变量Word类型,外部硬件组态的实际物理地址, 左移3位之后的数值,. 变量 LONGUEUR 为输入值,表示读取的数值宽度。 LAR1 P##POINTEUR_LECT 本人QQ:717546315. 如果哪位大神愿意解答,请加小弟QQ,小弟敬上一杯奶茶(小小红包略表心意)。 |
东方红一红 至圣 经验值: 16176 发帖数: 6606 精华帖: 50 |
1楼 2021-12-28 11:07:00
主题:回复:烦请各位大神 解读一下 这段批量读取和写入的程序段(IO子站) 预祝大家新年快乐 看来你认为读程序就是看小说。
知其道,用其妙!
|
zhangli0 至圣 经验值: 43503 发帖数: 15750 精华帖: 61 |
3楼 2021-12-29 10:37:33
主题:回复:烦请各位大神 解读一下 这段批量读取和写入的程序段(IO子站) 预祝大家新年快乐 你先去看看32位地址指针的格式,然后就好理解这个程序段了。 你这就是基本的读取(L),赋值指令(T)。
活到老,学到老!为了生活学习吧!
|
青峰明月 游士 经验值: 169 发帖数: 32 精华帖: 0 |
6楼 2021-12-30 17:31:51
主题:回复:烦请各位大神 解读一下 这段批量读取和写入的程序段(IO子站) 预祝大家新年快乐 各位大神,这个是我针对西门子提供的案例程序的理解与疑惑的地方,请求支援。 L P##RD_RECORD LAR1 将 RD_RECORD装载到 累加器1为什么这么做呢?这个似乎没有参与到实际运算? 因为下面进行的L装载会清除累加器1 L P##RD_Temp 将 RD_Temp传输到 累加器1 T #AD_Temp 将累加器1中的 RD_Temp传输到 AD_Temp 那么此时的AR1,应该是0? L W [AR1,P#0.0] 将W0内的数值装载到累加器1 T LW [#AD_Temp] 将累加器1中的 W0内的数值 传输到 LW(AD_Temp) L #AD_Temp L P#2.0 +D T #AD_Temp AD_Temp指针此时偏移2个字节 L D [AR1,P#2.0] 将 D2的数值 装载到累加器1 L #AD_Temp 将累加器1内的 D2的数值 装载到累加器2 将 AD_Temp 内的数值装载到累加器 1 L P#4.0 这里我有一些看不懂 +D 这里我有一些看不懂,到底是谁相加?以为他装载了3次, T #AD_Temp 将传输的结果传输到 AD_Temp L D [AR1,P#6.0] 将累加器1内的 D6的数值 装载到累加器1 T LD [#AD_Temp] 将累加器1内的 D6的数值 装载到 LD AD_Temp ,我不知道此时 LD AD_Temp的具体数值。 截止到此时,我也没搞明白 L P##RD_RECORD LAR1 这个操作的意义,求大神指点。 |