MODBUS RTU通信中关于如何将压力温度流量放入数据缓冲区

从站里 一个压力传感器的压力值为10.0是存在VD1000中的,数据缓冲区是VB0开始的100个字,应该是VB0-VB199。定义缓冲区的VD0(VB0,VB1,VB2,VB3)用于存储压力传感器寄存器的地址,程序是不是也要用间接寻指的方式将VD1000转到VD0中呢,即如下程序:LD     M1.0
MOVD   &VB1000, VD0, 
不知道是否是这样做呢。

主站的编程
主站这边通过读取40001放入缓冲取VB100,是不是表示主站的VD100=从站的VD0呢,如果要在主站里显示压力值是不是需要编程即:LD     M1.0
MOVD   *VD100, MD0
这时主站的MD0应该是显示压力值,
第一次接触通信方面,看了一些资料,不知道是不是这样理触的,手头上只有一个CPU224,做了MODSCAN与其的串口测试,000001和100001这方面的测试都是明白了,但对40001这寄存器方面还是不太懂,测试中的值都是0,不管我从站在缓冲区VB0中写入什么值MODSCAN里显示的40001都是0.0.,所以问了上面的那个问题,本身对间接寻址就接触的少

问题补充:
刚根据weiyt工程师说的直接将数据值写入数据缓冲区用MODSCAN32测试了一下,浮点数数据传送对就40001和40003,但整数型数据也是直接传到缓冲区里,不知道分别对应的40000是多少呢,好像显示不出来,请看下面的程序与MODSCAN32的截图

图片说明:

MODBUS RTU通信中关于如何将压力温度流量放入数据缓冲区    MODBUS RTU通信中关于如何将压力温度流量放入数据缓冲区   

最佳答案

1、是的,需要将要发送的数据放到数据缓冲区,并从缓冲区读取主站写来的数据。
    LD M1.0  //该指令是正确的
       MOVD &VB1000,VD0  //该指令是把VB1000的地址传送给VD0,VD0需要的是仪表的数据而不能是变量的地址
    可以修改成:
    LD SM0.0
       MOVD   &VB1000, AC1
       MOVR   *AC1, Symbol_9
     或者直接改成
    LD   SM0.0
      MOVR  VD1000,VD0
2、是的,40001对应第一个字,如果是读指令,那么将40001放到VB100开始的第一个字中,如果要使用,需要将VD100中的数据赋值给需要的变量。
     LD   SM0.0
         MOVR  VD100,VD0
3、40001~49999是读写寄存器的地址
补充
实数需要使用VD方式显示,一次使用2个字完成一个实数读写,如主站40001,40002中两个字存到VW100,VW102,使用VD100来显示实数就是10.0;整数就一个字可以了,如40003中存储10

提问者对于答案的评价:
谢谢

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc368429.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午3:09
下一篇 2021年7月5日 下午3:09

相关推荐

  • s7-200 cpu226与xk3118k9称重仪通讯程序

    我使用的是柯力xk3118k9称重仪,称重仪通讯口是232,想请教大侠怎么编程读取称重仪的数据,最好给一段实例,跪谢。我的邮箱是290134257@qq.com 最佳答案 自由口通…

    SIMATIC S7-200 2017年6月24日
  • 求高人指点,关于S7-200引入队列的程序

    1.电流源模拟量不断输入PLC,模拟量转换为数字量(这步不知道可不可以不要)2.引入队列,每过1s读取模拟量,并把这个值放入队列的一个栈中。1s后,这个值又进入队列的下一个栈,以此…

    SIMATIC S7-200 2020年10月31日
  • PLC200传送和PC通信字符是乱码

    目前PLC和PC能通过串口进行通信,但是在PC上传送字符到PLC上,PLC再回传到PC, 结果是乱码,主要用的是ATH,和MOV_B指令等,现象是比如我在PC上传送1,2…

    SIMATIC S7-200 2020年11月1日
  • plc200延时

    如图,通过t101产生10s周期脉冲,c20计数,但是当t101计时满100时,c20并不计数,也就是会产生脉冲,但似乎没给c20,这是为什么? 图片说明:  &nbsp…

    2017年11月4日
  • 用PID向导 调节PID为什么不是很稳定

    CPU224XP CN通过EM231接收差压变送器的液位输入信号,EM232提供输出信号给电动调节阀,PID控制可实现无扰动切换,手动可以设置输出,但是自动调节后并不是很…

    SIMATIC S7-200 2017年11月19日
  • s7-200 300 伺服 运动控制

    我要做一个类似火焰切割机的设备(2轴伺服 在电脑设计图形,设备按照轨迹切出图形实物)1.哪个型号PLC可以做到?2.用什么软件生成NC代码? 最佳答案 200-CPU26…

    SIMATIC S7-200 2017年10月24日
  • 上位机

    在wincc中我想点击一个点击一个电机图片,就会弹出一个开关画面,用c语言编写。有许多电机例如风机水泵等,能不能用一个开关画面呢?在一个就是应用程序窗口与画面窗口的区别?越详细越好…

    2017年11月23日
  • 西门子200模拟量模块资料

    请问:西门子200模拟量输入模块231-0HF22-0AB0(那种8通道的,现在用的好象都是4通道的了)资料谁有吗?可我现场有个8通道输入的模块,它下面也有6个DIP开关,不知道怎…

    SIMATIC S7-200 2021年7月4日
  • 步进电机怎么设定脉冲个数

    有个工程,第一步启动I0.0自动前进80000个脉冲,停留10分钟返回原位,第二部再启动I0.1前进100000个脉冲,停留5分钟返回原位,第三部启动I0.2 前进500…

    SIMATIC S7-200 2020年10月31日
  • 200控制施耐德伺服

    请问,用200PLC发脉冲控制施耐德伺服,谁有实例。是运用PTO控制吧?需要用到高速计数器吗。有实例程序带解释最好,麻烦发下给我。谢谢啦!邮箱:754001594@qq.com 最…

    SIMATIC S7-200 2017年12月7日

发表回复

登录后才能评论