技术论坛

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

作者 主题
新手

经验值: 34
发帖数: 2
精华帖: 0
主题:【求助】求助自由口通讯,烦请各位大佬指教


只看楼主 楼主 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







 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1698574&b_id=50&s_id=0&num=1

侠圣

经验值: 2625
发帖数: 734
精华帖: 3
回复:求助自由口通讯,烦请各位大佬指教


只看楼主 1楼 2021-06-02 10:55:41

你试过plc连串口工具不,PLC的请求数据发出去了没?

receive_p2p_db需要无条件调用。


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
求助自由口通讯,烦请各位大佬指教
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。