前段时间因为客户需求 让我调试一个霍尼韦尔扫码枪 要走以太网通信

之前调的扫码枪基本都是走串口 在网上没查到什么资料 虽然有些小问题 但是最后也算调出来了

后来又遇到一些同行询问扫码枪走以太网的方式 索性就写一篇小教程吧

知识有限 难免出错 欢迎指出

1200走以太网通信一般就是TCP/IP 可能有的会用到UDP

简单来说 TCP通信就是三步 1.建立连接  2.发送/接收数据  3.断开连接  博图对这三个步骤都做了封装 我们只需要填出入库参数即可

博图中有两种TCP通信函数 一种是将3步整合在一起 一种是三步分开调用的函数 如下图

为了更清楚的理解TCP的三个步骤 先讲讲第二种

(1)TCON

TCON就是三步中用来建立连接的函数 调用TCON函数 点击右上角组态

在下方的属性页面出现如下图界面 在伙伴栏选择未指定  然后在连接数据中选择新建

填写伙伴方IP地址 以及伙伴端口号 若扫码枪采用以太网通信 都需要提前配置好IP地址和端口号 端口号要从2000开始

配置好后TCON需要一个使能信号

这里解释一下ID的含义 当客户需要多台设备(不仅仅是扫码枪)都使用同一个IP地址时,就需要通过ID号来区分不同的设备 但是一般情况下IP地址是绝对够用的 所以就为每一个设备分配了单独的地址 因此ID号保持缺省状态就行

(2)TRCV_DB

数据接收函数 需要接入一个使能信号  这里建议使用1s的时钟来进行1s接收一次数据 ID号要与前面建立连接的ID一致

关键点是这个DATA参数 我第一次建立的是200长度的Array of Word类型数据 但是接收到的数据怎么都不对

后来我直接把扫描枪和笔记本用网线连起来  通过网络调试助手直接在电脑上显示扫到的数据 以16进制显示的情况下 发现扫码枪发送的是ASCII码 一个AXCII码是由8个二进制数组成的 所以我将  "Data.接收的数据" 的类型改为Array[1..200] of Byte

结果进行一次扫码后数组里全是空的 但是数据接收显示已经完成 我就多扫了几次 结果发现只有在将数组全部填满时才会一次性都显示出来 这就造成了另外一个问题

当你的条形码长度为13时 200个长度的数组并不能刚好装下 结果就导致了最后一次扫码时超过200的数据会覆盖数组里前面的数值 文字说的不清楚 就用算式来说明一下

200 ÷ 13 = 15 余 5

当扫码15次时 数组不会显示数据

第16次扫码时 前5个数据填充在200长度数组的最后5位

剩余的8个数据则依次覆盖了从1开始的8个数据

因此 在读条码前需要先确定要读条码的长度 然后建立相应长度的数组

造成这种现象的原因还没有搞清楚 客户也不关心这个 数据读出来后就把扫码枪拿走了 我也没用机会再去好好研究了

如果有网友也发现这个问题并且解决了 欢迎给我留言

发送和断开指令基本同上面两个一致 这里就不再做介绍了

/**********************************************************************************************************************************/

2020/9/28更新

关于之前提到的“最后一次扫码时超过200的数据会覆盖数组里前面的数值”

造成这种现象的原因是在没有将数组填满时 数据都是保存在缓冲区 只有充填的数据填满数组时 才会进行一次缓冲区刷新 将数据刷新到数组对应的内存中 也就是在这个时候数组才真正有值

对于这个问题的解决好像还没有什么很好的方法 在高级语言中 如C语言是有缓冲区刷新函数---fflush()的 但是1200好像没有这个功能函数 所以只能确定好要读取的数据的长度 再建立相应长度的数组

s7-1200PLC和第三方扫码枪走以太网通信相关推荐

  1. 罗克韦尔AB PLC 通过KEPServer实现与西门子1200PLC的以太网通信

    罗克韦尔AB PLC 通过KEPServer实现与西门子1200PLC的以太网通信 环境搭建: 软件:  Studio 5000 V33.01.01  KEPServerEX 6.4  TIA ...

  2. 查看PLC IP 端口_详解S7-1500的以太网通信数据类型:TCON_IP_v4

    西门子S7系列PLC的开放式以太网通信过程包括如下几个步骤:建立连接(Establish connection).发送/接收数据(Send/receive data).断开连接(Disconnect) ...

  3. 组态王软件与200smart无线以太网通信方案详解

    想要建立组态王软件与S7-200Smart之间 Profinet无线以太网通信,需要采用西门子PLC无线通讯终端--DTD418M,作为实现无线通讯的硬件设备.用户无需更改网络参数和原有程序,也不必了 ...

  4. S7-1200PLC与MCGS触摸屏实现以太网通信的具体方法示例

    S7-1200PLC与MCGS触摸屏实现以太网通信的具体方法示例 具体方法和步骤可参考以下内容: 1. 硬件设置: 如下图所示,将1200PLC和MCGS触摸屏用网线连接以太网接口, 触摸屏上电后出现 ...

  5. 西门子S7300PLC转以太网连接CHNet-S7300MD实现以太网通信配置方法

    西门子S7300PLC转以太网连接CHNet-S7300MD实现以太网通信配置方法 产品简介 兴达易控CHNet-S7300MD用于西门子S7-200/SMART S7-200/S7-300/S7-4 ...

  6. ETH—Lwip以太网通信

    第39章     ETH-Lwip以太网通信 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/ ...

  7. 西门子array数据类型_西门子S71200之间以太网通信(图文)

    西门子S7-1200之间以太网通信 一.通信前的准备 首先创建新项目,并命名为"s7-1200之间通信",如下图所示: 然后组态设备,选择s7-1200的CPU 1214C DC/ ...

  8. (三.0)通过FPGA实现以太网通信原理及理解

    0.0 OSI模型的简单理解 OSI(Open System Interconnect),即开放式系统互联.一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型.该体系 ...

  9. 串口转以太网通信源代码C语言C++编写支持多路转换双向通信支持UDP和TCP客户端

    串口转以太网通信源代码C语言C++编写支持多路转换双向通信支持UDP和TCP客户端 提供,带注释,带设计文档 使用说明介绍 1.功能介绍: 完成了多路网口和串口数据转换的功能. 可实现串口接收到的数据 ...

  10. DE2-115 以太网通信之一88E1111网卡接收PC数据

    想利用手头上的DE2-115 写一个关于以太网通信的驱动,经过了这么多天的实验调试终于有了一些认识. 1.我在观察网卡发送数据与接收数据的过程中发现,我从fpga上的一个网卡发送数据,然后另一个网卡接 ...

最新文章

  1. locust入门:单机使用locust运行压力测试
  2. JDK1.5-1.7 比较二
  3. 替换Quartus 自带编辑器 (转COM张)
  4. C++:29 --- C++继承关系下的内存布局(下)
  5. python如何输入多行数据合并_python 实现将txt文件多行合并为一行并将中间的空格去掉方法...
  6. matplotlib-快速学习折线图-柱状图2个-饼图-0225
  7. 二叉树的深度优先遍历原理及python实现
  8. 计算机辅助园林设计常用软件,计算机辅助园林设计应用探讨.doc
  9. keepass+onedrive打造密码管理器
  10. Subversion for Windows 相关工具
  11. 【Sprint3冲刺之前】TD学生助手——alpha版发布
  12. wps 宏 禁用_WPS表格如何解除宏禁用
  13. 苹果鼠标滚轮驱动_如何挑选一款适合自己的游戏鼠标
  14. 社会工程学攻击选项是_什么是社会工程学,如何避免?
  15. CAD中属性编辑操作——对象属性
  16. 把单元格一分为二_excel如何把一个单元格分成两个 excel单元格拆分为二行
  17. Gradient Boosting算法简介(有python列子)
  18. 深度学习中优化方法——momentum、Nesterov Momentum、AdaGrad、Adadelta、RMSprop、Adam
  19. android 音乐文件删除,如何从华为手机恢复已删除的音频或音乐文件
  20. Matplotlib官方文档学习笔记 PART1-简介 C2-pyplot教程 (19-12-4 by-xieyuxin)

热门文章

  1. 数学建模PPT(二)
  2. java access数据库连接_Java Access数据库连接
  3. ORACLE_mldn_002
  4. vb学生管理系统服务器编程,利用VB进行服务器编程实例汇总.doc
  5. 定时下载快速精密星历
  6. 自己动手写操作系统(高清图书+源代码)分享
  7. mysql数据库编程第六章试题_2016年计算机二级MySQL数据库试题及答案
  8. centos7安装其他源以及安装软件
  9. 高德地图No implementation found for long com.autonavi.amap.mapcore.MapCore
  10. 字体直链提取器_MIUI主题直链提取器下载-MIUI主题直链提取软件 v1.3.5_5577安卓网...