技术论坛

 LOGO 8! 中模拟量 VM地址的疑问

返回主题列表
作者 主题
hohoxing
游民

经验值:80
发帖数:3
精华帖:0
楼主    2021-02-10 09:51:13
主题:LOGO 8! 中模拟量 VM地址的疑问

各位好


我今天在做程序的是否遇到难题。


当在程序里只有一个模拟量输出的时候,比如只有AQ1输出,


AQ1的VM地址是VM1072,可以在数据表中查阅到VM1072的数值与AQ1的输出数值匹配。


当在程序里有多个模拟量输出的时候,比如有AQ1\AQ2\AQ3输出,


AQ3的VM地址是VM1072,可以在数据表中查阅到VM1072的数值与AQ3的输出数值匹配。

但是AQ1\AQ2的数值却查阅不了,我尝试过VM1072~VM1077地址也查阅不到AQ1\AQ2的数值。

请问具体哪个步骤出了错了

感谢

yming
至圣

经验值:126313
发帖数:21933
精华帖:822
4楼    2021-02-11 17:25:39
精华帖  主题:回复:LOGO 8! 中模拟量 VM地址的疑问

模拟量信号(原始的)粗线,直接给到网络模拟量,自己指定VW位置。

没问题!

注意点:我使用较多,看出要点了。

不要使用经后续偏移放大的模拟量信号!仿真中没问题,实际通讯不能使用!S7 TCP之类的完全不正确。它只能使用原始信号!本质上,就是通讯不支持负数。

别给自己挖坑!


学而时习之,不亦说乎?温故而知新,不亦乐乎?
公子重瞳
游侠

经验值:317
发帖数:17
精华帖:1
7楼    2021-03-01 11:04:28
精华帖  主题:回复:LOGO 8! 中模拟量 VM地址的疑问

哈喽哈喽楼主问题解决了么?5楼大佬的回答是对的,LOGO此处应该没有问题,为此我做了一下测试以供参考哈:

  1. 所用硬件:两个LOGO!BM(主机模块也就是CPU模块), 固件版本都是8.2的(这个测试和固件版本没啥关系)


  2. 所用软件:LSC(LOGO! Soft Comfort也就是LOGO!的编程软件),版本是8.3(同样这个测试和用什么软件版本也没啥关系)

 

一、原理及推测分析:

  1. 我理解的楼主的目的是想通过S7通信取到LOGO!里面V区地址中对应的I/Q/M/AI/AM/AQ的数据,这里先做一下澄清,LOGO!固件中给用户开放(也就是用户可以在程序中自己配置使用的区域)的V区域是VB0-850,这里都是以字节(Bytes)的地址表示,其实一共是851个字节的空间:


    而从VB851开始的后面的地址空间,用户是不能在程序里面自己定义的,这部分的地址空间目前从LOGO!的相关文档上是VB851-VB1469,也就是619个字节,至于VB1469后面是什么(或者说还有没有空间)是不清楚的,至少我没有在相关文档上找到有用的信息-_-‘

    扯得有点远…现在回到楼主这里,根据上面说的,想实现楼主的目的其实有两种方式,

    第一种方式是用VB0-850,自己能定义的区间,把想要通信的数据映射过去,举一个栗子:

    比如我想把I1(就是第一个数字量输入)的值映射过去,我要做的就是确定要映射的具体地址,比如V100.0(VB100的0Bit),具体可以用功能块“网络输出”(NQ),像下面这样:


    这里红色圈出来的就是映射的地址,这里你会发现你只能选择VB0到850,然后其他的设备只要访问这个设备的V100.0就能得到这个设备的I1的值,这个比较好理解,但是同时问题也来了,我要记得V100.0被用来映射I1了,而且我用了一个NQ1的功能块,要知道LOGO!的内存空间和资源有限,功能块的数量也是资源的一种,而且我编了程序(我就是不想编这部分程序,因为我懒…),所以引出来第二种方式。

    第二种方式,就是用VB850后面的空间,我们就最简单粗暴的把这部分空间理解成隐藏的秘密地址(惊喜),来看看它到底能干啥。

    直接查文档,可以把这部分分成四部分(就按照空间顺序吧,这样可能好理解些):

    1.     VB851-983

    对于LOGO!8来说,这部分没有什么意思,把它叫做保留空间吧(Reserve),也就是说你可以通过通信取读写这部分区域但是因为没有映射什么所以没什么意义;

    但是对于LOGO!7来说这部分其中的一部分是有意义的,因为那一部分对应了LOGO!7的I/O映射区:


    LOGO!7已经比较老了,可以不用太关注了吧……(感兴趣的自己去翻文档哈)

    2.     VB984

    来了来了,这个Byte就有意义了,因为它竟然是诊断信息的映射区(惊喜x2):

    关于LOGO!8的诊断我就不在这扯了,怕刹不住车……

    3.     VB985-VB990

    这6个字节竟然对应了RTC时间映射!!!也就是说可以通过这6个字节读写LOGO!8的RTC时间,突然感觉LOGO!热情奔放了有没有。


    4.     VB991-VB1023

    这部分都应该是保留空间(Reserve),好像VB991-VB1002有什么什么意义,文档写的不清不楚的我也没有去求证,有大佬研究了可以共享一下(偷懒x2)。



    5.     VB1024-VB1469

    这里重点来了,这部分在文档上清楚的写了,这部分,有,意,义!

    但是文档写的比较另类(可能也是和我一样想偷懒),我想可能就是这个原因让大家感到很困惑,这也是我的回帖主要想说的,文档写到:

    这是什么鬼!!!

    类型I为什么范围是8个字节?我们知道I就是数字量输入,就是DI,LOGO!8最大就支持的I1-I24,24路数字量输入,每一路应该是一个bit,那应该是3个字节啊,纳尼,为什么是8个字节???

    那是因为其他的5个字节都是保留空间(Reserve)了!!!

    也就是I1对应的是V1024.0,I2对应V1024.1,I24对应V1026.7,VB1027-VB1031都是保留空间!!!


    后面就好解释了,因为每个区域里面都可能有保留空间(我猜这主要是为了以后万一扩展起来方便,比如LOGO!9要是最大支持I1-I32了,改底层固件的这个地方就很easy了)。



    终于来到楼主说的AI/AM/AQ,这三种类型对应的是字,也就是两个字节,所以是两个字节代表一个固定的意义,下面以AQ为例:

    因为LOGO!只支持8路(个)AQ,所以只用到了VB1072-VB1087共16个字节,也就是8个字(word),而后面的VB1088-VB1103都保留了。



    以上就是通过LOGO!的本身实现以及西门子给出的文档我们能够推测出来的,这个推测对不对让我帮大家验证一下(突然感觉自己有点闲,hhhhh)



二、验证

  1. 我打算拿一个LOGO!,然后在线设置AQ1-AQ8的值(主要是为了方便看现象),然后我用另一个设备去读这个LOGO!里面VB1072-VB1087,对应的字的地址就是VW1072,VW1074,VW1076,VW1078,VW1080,VW1082,VW1084,VW1086这八个字,这里说明一下,LOGO!是可以在线去显示以及设置V区的(类似别的PLC里Online监控表的东西),但是还是只可以操作VB0-VB850,后面的不行,也是比较醉了。如果读到的VW1072,VW1074,VW1076,VW1078,VW1080,VW1082,VW1084,VW1086能与AQ1-AQ8一一对应,那就验证了我们的推测,注意,是要一一对应。

  2. 为了省事我的另一个设备就选一个支持S7通信的,这样就可以比较容易的取到LOGO!的V区,而LOGO!本身就是支持S7通信的,Duang,就用一个LOGO!去和另一个LOGO!通信来做验证,不用找别的设备了,耶!

  3. 具体的来了:

    右边的2#用来做被测设备,创建一个S7服务器,对应的在左边1#创建一个S7客户端,用来取2#的数据,这里要分别创建,而不能直接用连线的方式创建,这是因为如果用直接连线的方式会认为两个设备都是LOGO!(虽然实际确实如此),就会限制两个LOGO!之间的V区通信范围(还是VB0-VB850),而分别创建作为客户端的1#会认为服务器2#是一个S7的兼容性设备,客户端就可以根据S7的协议区访问服务器的地址区间(就是说不受0-850 的限制)。

    下面第一个图是服务器的配置;

    第二个图是客户端的配置,客户端配置了需要从服务器取的数据。





  4. 这样对应了之后的目的是把2#的数据读取后放到1#的V区用来验证,对应关系就是这样的:

    2#里面的VW1072,VW1074,VW1076,VW1078,VW1080,VW1082,VW1084,VW1086按顺序对应1#里面的VW100,VW102,VW104,VW106,VW108,VW110,VW112,VW114;

    1#里面VB1088开始的reserve区域也是按顺序对应过去的,我就不一一列出来了。

  5. 2#的程序是这样的,就是把不同的数值给不同的AQ输出出来,就是这么简单粗暴:


  6. 1#里面其实不需要有程序,只要能让它Run起来,然后在线监控对应的V区就可以:

    这样就能看到1#的V区的数据就是2#的AQ的数据,更改2#的AQ的值,1#里对应的V区数值也随之改变,从而证明了2#的AQ的数据和2#里面对应的V区的数据是一致的,该对应的对应,该保留的保留,又回到这个表了:

    这样就验证了之前的推测,包括AQ与V区的对应关系,以及保留地址的概念。

    时间有限比较凌乱,见谅见谅哈!


Stay humble Stay decent
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。