求助自由口通讯,烦请各位大佬指教

已锁定

中创智控李工-工业称重

  • 帖子

    2
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2020-12-14

普通 普通 如何晋级?

求助自由口通讯,烦请各位大佬指教

481

1

2021-06-01 17:31:59

    有一台称重仪表,通讯接口是RS485(四线制的),支持的通讯方式是自由口通讯,需要发送指令,才能够返回称重数据。比如输入指令MSV?;,则返回当前的重量数据;

    硬件为S7-1212C和CM1241(RS422/485),在连接仪表前,已经和串口助手测试过。

   仪表通讯参数设置为波特率9600,8N1

   写好程序后,一直报错7000和7002,错误提示为块空闲中间调用:数据传输运行;

程序如下: // 先将格式指令和获取重量指令定义好,初次扫描的时候将格式指令发送给仪表,定义通讯                         的格式,然后用一个10Hz的脉冲去发送重量指令,当重量指令发送完成之后,完成位为1;


REGION 初始化  

        "自由口通讯数据块".send_buffer_cof := 'cof009;';    //设置数据格式;

        "自由口通讯数据块".send_length_cof := 7;            //指令长度为7个字符;

        "自由口通讯数据块".send_buffer_msv := 'msv?;';      //读取当前重量;

        "自由口通讯数据块".send_length_msv := 5;          //指令长度为5个字符;

END_REGION


REGION 进行格式设置

    "Send_P2P_DB"(REQ:="FirstScan",                              //通电初始化一次

                      BUFFER:="自由口通讯数据块".send_buffer_cof,

                      "PORT":="Local~CM_1241_(RS422_485)_1",

                      LENGTH:="自由口通讯数据块".send_length_cof,

                      DONE=>"send_done",

                      STATUS=>"send_status")

        ;

END_REGION


REGION 读取重量

    "Send_P2P_DB_2"(REQ:="Clock_10Hz",                                  //10Hz的脉冲;

                    "PORT":="Local~CM_1241_(RS422_485)_1",              //本地串口,串口号为269;

                    BUFFER:="自由口通讯数据块".send_buffer_msv,         //发送Ascii格式的字符串指令;

                    LENGTH:="自由口通讯数据块".send_length_msv,         //指令长度为5

                    DONE=>"rec_done_msv",                               //发送完成的状态位

                    STATUS=>"rec_status_msv");                          //错误代码

END_REGION


REGION 返回重量结果

    IF "rec_done_msv" THEN                                              //当发送完成状态位为1时,开始接受重量信息

        "Receive_P2P_DB"("PORT" := "Local~CM_1241_(RS422_485)_1",       

                         BUFFER := "自由口通讯数据块".rec_buffer_msv,   //接收Ascii格式的字符串指令;

                         NDR => "rec_done",                             //接收完成状态位

                         ERROR => "rec_error",                          

                         STATUS => "rec_status");                       //错误代码

    END_IF;

END_REGION






求助自由口通讯,烦请各位大佬指教 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有13037条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

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