湖北省随州市西门子办事处---华中Siemens(授权)总代理

更新:2024-06-27 07:00 发布者IP:223.74.194.227
发布企业
广东湘恒智能科技有限公司商铺
认证
资质核验:
已通过营业执照认证
入驻顺企:
2
主体名称:
广东湘恒智能科技有限公司
组织机构代码:
91441304MAC3TWY11U
报价
请来电询价
西门子PLC
西门子伺服电机
西门子触摸屏
西门子电缆
西门子变频器
西门子模块
关键词
华南西门子总代理,华中西门子总代理,华东西门子总代理,华北西门子总代理,西北西门子总代理
所在地
惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)
联系电话
13510737515
手机
13185520415
联系人
董海波  请说明来自顺企网,优惠更多
请卖家联系我
13185520415

产品详细介绍

xml的通讯,其实可以分解为几个步骤:
机器人发送到上位机:机器人程序将变量或者数值写入xml的元素中→机器人将xml发送通过服务端发送到上位机的服务端→服务端接受到数据,按照xml的格式解析其中元素。
RET=EKI_Init("XmlCallBack")//初始化xml文件
RET=EKI_Open("XmlCallBack")//打开(相当于客户端请求连接)
//将变量或值写入到xml文件的元素中
;FOLD Write data to connection
  ; Write frame to <LastPos X="" Y="" Z="" A="" B="" C=""/>
  RET=EKI_SetFrame("XmlCallBack","Robot/Data/LastPos",TOOL_DATA[1])
  ; Write real to <ActPos X="" />
  RET=EKI_SetReal("XmlCallBack","Robot/Data/ActPos/@X",1000.12)
  ; Write int to <Status></Status>
  RET=EKI_SetInt("XmlCallBack","Robot/Status", 12345678)
  ; Write string to <Mode></Mode>
 RET=EKI_SetString("XmlCallBack","Robot/Mode","ConnectSensor")
  ; Write bool to <LightOn></LightOn>
 RET=EKI_SetBool("XmlCallBack","Robot/RobotLamp/GrenLamp/LightOn",true)
;ENDFOLD (Write data to connection)
//发送xml到服务端
RET = EKI_Send("XmlCallBack","Robot")

上位机服务端获取到的数据是:

<Robot><Data><LastPos X="483.980011" Y="7.210000"Z="239.869995" A="0.000000" B="0.000000"C="0.000000"></LastPos><ActPosX="1000.119995"></ActPos></Data><Status>12345678</Status><Mode>ConnectSensor</Mode><RobotLamp><GrenLamp><LightOn>1</LightOn></GrenLamp></RobotLamp></Robot>
然后对数据进行逐个元素的解析就可以了。要增加变量,只要对应在mxl文件,机器人程序和上位机解析过程中添加就可以了。
上位机发送到机器人:上位机将变量写成xml格式,利用客户端发送到机器人中的xml文件→机器人读取xml文件中的元素值到程序中的变量
写成xml格式:
sendstr = sendstr +"<Sensor><Status><IsActive>FALSE</IsActive></Status></Sensor>";
sendstr = sendstr + "<Sensor><Read><xyzabc X='10.0'Y='20.0' Z='30.0' A='40.0' B='50.0'C='60.0'></xyzabc></Read</Sensor>";

然后是tcp发送
/// <summary>
        /// 将字符串发送给机器人
        /// </summary>
        /// <paramname="str"></param>
        private voidsendToRobot(string str)
        {
           string sendstr;
           str = str.Replace(" ", "");
           string[] fields = str.Split(',');
           string header = "<Sensor>", tail ="</Sensor>";//变量xml文件中的父元素
 
           sendstr = header;
           //设置xml文件中变量的值,格式:<变量名>变量值</变量名>
           foreach (string item in fields)
           {
               string[] arr = item.Split('=');
               sendstr += "<" + arr[0] + ">" + arr[1] + "</" + arr[0] +">";
           }
           sendstr += tail;
           //这些变量的某些中间父元素与前面的不同,所以另外写
           sendstr = sendstr +"<Sensor><Status><IsActive>FALSE</IsActive></Status></Sensor>";
           sendstr = sendstr + "<Sensor><Read><xyzabc X='10.0'Y='20.0' Z='30.0' A='40.0' B='50.0'C='60.0'></xyzabc></Read></Sensor>";
           string strDataLine = sendstr;
           try
           {
               Byte[] sendData = Encoding.UTF8.GetBytes(strDataLine);
 
               foreach (DictionaryEntry de in _sessionTable)
               {
                   EndPoint temp = (EndPoint)de.Key;
                   {
                       for (int i = 0; i < theIndex; i++)
                       {
                           if (theListClient[i, 1] == "1")
                           {
                               if (temp.ToString() == theListClient[i, 0])
                               {
                                   try
                                   {
                                       Client[i].SendTo(sendData, temp);
                                   }
                                   catch (Exception ex)
                                   {
                                       
                                   }
                               }
                           }
                       }
                   }
               }
           }
           catch
           { }
        }


等发送完成之后,机器人再读取
机器人从xml元素中读取值或者属性并赋予创建的变量
 RET=EKI_GetString("XmlCallBack","Sensor/Message",valueChar[])
 RET=EKI_GetInt("XmlCallBack","Sensor/Nmb",valueInt)
 RET=EKI_GetBool("XmlCallBack","Sensor/Status/IsActive",valueBOOL)
 RET=EKI_GetFrame("XmlCallBack","Sensor/Read/xyzabc",valueFrame)
然后就可以在机器人程序中使用,或者通过查看变量值检测是否正确。

所属分类:中国电工电气网 / PLC
湖北省随州市西门子办事处---华中Siemens(授权)总代理的文档下载: PDF DOC TXT
关于广东湘恒智能科技有限公司商铺首页 | 更多产品 | 联系方式 | 黄页介绍
成立日期2022年11月13日
主营产品西门子PLC 变频器 伺服电机 人机界面 触摸屏 线缆 DP接头
经营范围西门子PLC 变频器 伺服电机 人机界面 触摸屏 线缆 DP接头
公司简介广东湘恒智能科技有限公司主要从事工业自动化产品的集成,销售与维修。致力于为您提供在机械、化工、水泥、电力、环保等领域的电气及自动化技术的完整解决方案,包括自动化产品及系统、工程项目执行及管理、主要过程控制领域技术支持,以及专业的售后服务、培训等。公司本着“以人矢志创新、追求卓越”的工作方针,致力于工业自动化控制领域的产品开发、工程配套和系统集成、销售,拥有丰富的自动为本、科 ...
公司新闻
顺企网 | 公司 | 黄页 | 产品 | 采购 | 资讯 | 免费注册 轻松建站
免责声明:本站信息由企业自行发布,本站完全免费,交易请核实资质,谨防诈骗,如有侵权请联系我们   法律声明  联系顺企网
© 11467.com 顺企网 版权所有
ICP备案: 粤B2-20160116 / 粤ICP备12079258号 / 粤公网安备 44030702000007号 / 互联网药品信息许可证:(粤)—经营性—2023—0112