请教多路传感器输入及数值转换程序

前面经过多方调试和各位的帮忙指导我已经建立了一个传感器与PLC的通信,但还有两个问题需要大家的指导,在此先谢了:
 1、数据传送以ASCII方式,PLC接收到的数据为十六进制,即为十六进制的ASCII,如接收到数据30H 39H 31H 34H,实际上最终数值为9.14,因此,如何将上面四个字节的数据转换成一个实数呢?假设上述四组数据地址为VB300、VB301、VB302、VB303,最终结果存放在VD400中,该如何编程呢?
 2、使用如下的中断程序完成了一路传感器的通讯,现在我要实现两路传感器分时输入,但只有一个串口可用,两路传感器型号不一样,分别为1、2,需要在程序中做何种修改呢?添加另外两个类似的中断可以吗?如何实现分时呢?谢谢各位,能给我写出程序最好,若是忙的话给出思路也好。
 一路通信程序如下:
 MAIN:
 Network 1 // 网络标题
 // 网络注释
 LD     SM0.1
 CALL   SBR0

 SBR0:
 Network 1 // 网络标题
 // 网络注释
 LD     SM0.1
 MOVB   16#09, SMB30
 MOVB   16#F0, SMB87
 MOVB   16#0A, SMB88
 MOVB   16#0D, SMB89
 MOVW   +100, SMW92
 MOVB   17, SMB94
 ENI
 ATCH   INT0, 9
 MOVB   150, SMB34
 ATCH   INT1, 10

 INT0:
 Network 1 // 网络标题
 // 网络注释
 LD     SM0.0
 RCV    VB200, 0
 MOVB   250, SMB34
 ATCH   INT1, 10

 INT1:
 Network 1 // 网络标题
 // 网络注释
 LD     SM0.0
 DTCH   10
 XMT    VB100, 0
 数据块:
 VB100  4
 VB101  16#0A
 VB102  16#0D
 VB103  16#1
 VB104  16#0D

问题补充:
谢谢各位的指导,目前我已经完成了数制转换和两路传感器分时通信,但是就像LaoHuai说的,传输过程中如果某一路传感器掉电,那么PLC将不能接收到数据,具体就是:两路传感器可以通信,仅型号2可以通信,此时型号1存储数据为0,但是仅型号1却不能通信,不能接收到数据,现将主要的分时程序和中断程序写出来,希望大家能帮忙指点一下:
 Network 2 
 // 产生周期2秒的时钟脉冲,一秒OFF,一秒ON
 LDN    T34
 TON    T33, 150
 TON    T34, 300
 网络3:分时定义不同的传感器机型号,以辨别向不同的传感器发送
 LD     T33
 MOVB   16#1, VB53
 NOT
 MOVB   16#02, VB53
 中断1:
 Network 1 // 网络标题
 // 传感器向PLC发送数据,存放在VB100数据缓冲区
 LD     SM0.0
 LPS
 AB=    VB53, 1
 RCV    VB99, 0
 LRD
 AB=    VB53, 2
 RCV    VB499, 0
 LRD
 MOVB   250, SMB34
 LPP
 ATCH   INT1, 10
 中断2:
 Network 1 // 网络标题
 // 向传感器传送数据
 LD     SM0.0
 DTCH   10
 XMT    VB50, 0

 
 

最佳答案

1、
  回答问题前我说些无关的话
  a、我是在看到你问题后一边看帮助一边实验,我也希望你以后可以多按F1,自己实验得到的知识一般印象很深。
  b、从转换的结果和我查码表的结果来看,你的问题答案是914.0,
  你应该是忘了告诉大家,小数位是固定的2位,对不对?

  使用 STR 指令

  LD     SM0.0
  STR    VB299, 1, VD400 //VB299存放的是字符串的长度,本例为4

  如果还不清楚,请在转换/STR指令上按F1

 2、
 使用定时方式改变VB100开始发送数据区的内容,如果我猜的不错的话应该是让VB103为1 或者 2 ,接收的时候通过通讯协议来判断是哪个设备返回的,做相应的处理。

提问者对于答案的评价:
谢谢您的帮助,让我受益匪浅,谢谢。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午10:32
下一篇 2021年7月4日 下午10:32

相关推荐

  • 输出公共端

    大家好!我用的是224CN的 ,220电源。DO点接的是交流继电器线圈的一端(继电器的另一端接的是交流24V的正)。那么输出的公共端(1L,2L,3L)是应该接交流24V…

    SIMATIC S7-200 2021年7月4日
  • s7200 用modbus协议与计算机通讯

    7200 用modbus协议与计算机通讯时能否直接把计算机串口与s7200通讯口相连?不能应该怎样实现之间的连接? 问题补充:使用MODBUS协议通讯时,设备之间的通讯连…

    SIMATIC S7-200 2021年7月5日
  • 多个200

    多个200一起做一个大程序,用什么方式好,组态用什么 问题补充:一个做200的主站,其它做从站,控制模式为modbus rtu。这样的案例有没有,您能不能给我发一个让我研…

    SIMATIC S7-200 2017年6月11日
  • 模拟量 压力传感器

    现场压力传感器信号给em235cn模块,触摸屏显示的重量上下不连续跳动,怎么处理让它稳定?另外M0I0接个三菱A700变频器,跟这有关系吗? 问题补充:电流信号 &nbs…

    SIMATIC S7-200 2017年10月24日
  • S7-200 PID123

    S7-200 PID有个问题请教下,见下图。请问设定值怎么优化,可不可以直接输入触摸屏写入的数据,比如设定流量值30KG/H,我如何约定这个数据输入到图中的SETPUT中…

    2017年8月18日
  • 有16个伺服,脉冲控制。该选什么CPU和定位模块

    1.成本考量选型2.方便考量选型 最佳答案 200PLC的226本体最多可以带5个EM253所以不适合,建议用300PLC来搭建系统。因为你涉及到成本问题,所以建议找西门子的代理商…

    SIMATIC S7-200 2017年5月28日
  • 200plc间接寻址的问题请师傅看看谢谢了

    200plc第一步movd &vb100 ,ac1  第二步 addr 1, ac1 &nb…

    SIMATIC S7-200 2021年7月5日
  • S7-200过程数据记录

    要在S7200中,绘制一模拟量输入的变化曲线,客户不想用数据记录向导来做(不想加钱买储存卡),现打算每100MS采集一次数据,放在V区,采集过程5秒,总共50个数据.现在想把这些在…

    SIMATIC S7-200 2020年11月1日
  • USS控制变频器

    1、是不是只需要调用USS_INIT和USS_CTRL这2个块就可以?我看到书上只调用了这2个。2、如图1,激活站号是不是每次调用只能激活一个?如果有多台变频器,就多次调用这2个块…

    2020年10月31日
  • STEP7-MicroWIN SMART怎么用网线上传下载PLC程序?

    STEP7-MicroWIN  SMART怎么用网线上传下载PLC程序? 上传时是新建一个空白程序再上传吗?上传时IP地址要不要设置好? 最佳答案 参…

    SIMATIC S7-200 2021年7月5日

发表回复

登录后才能评论