一般来说,读写plc寄存器信息用于自动化产线控制及在没有上位机交互的情况下数据采集(不建议,数采效率不高
1,在服务器上安装配置KepWare及OPC服务
2,服务器上部署一个SOS服务用于读写服务
3. 配置需PLC的IP,端口,品牌(所支持的驱动),寄存器地址。一般使用同步读写。启动opc服务,调试是否能正常读写。
4. plc方需设置,定时清除PLC寄存器地址的值为默认值(比如0)。
5.建一个表,用于记录配置

写入信号

function sendPlc(location){sql = "select tag_arg1 from FA_PLC_CONTROL t where location = '"+location+"'"//读取表信息,获取需要写入的寄存器地址vecResult = getArrayDataFromActive(sql)if(glbUnNull(vecResult)){tagName=vecResult.get(0)[0]plcRelease(tagName)//调用发送信号函数}
}function plcRelease(tagName){tagSetValue="1"syncURL ="http://10.xx.xx.xx:8156/web?method_type=WRITE_TAG&tagName="+tagName+"&tagValue="+tagSetValue//该ip地址即为sos服务,负责接送发送请求strRs=class com.amaxgs.mes.plugin.httpService.CustomizationHttpClient::sendGet(syncURL)logInfoMessage("CheckResult发送PLC信号 ===> " + syncURL)
}

此时PLC寄存器收到信号“1”,并作出相应动作。

读取信息

function readPlc(lineName){jsonCommObj=class com.amaxgs.esb.json.jsonCommsyncURL ="http://10.xx.xx.xx:8156/web?method_type=INIT&line_name="+lineNamejsonStr = class com.amaxgs.mes.plugin.httpService.CustomizationHttpClient::sendGet(syncURL)hashReadData = jsonCommObj::jsonObjToHash(jsonStr)scanCode=""for(i=0;i<hashReadData.size()-1;i++){readCode=hex(stringToInt(hashReadData.get(lineName+"_"+i)))//数值转换if(readCode=="0"){return null}readData=readCode.substring(3,readCode.length())+readCode.substring(1,readCode.length()-2)scanCode=scanCode+readData}return scanCode
}

PS:
1.每个lineName作为一组,for循环拼接转换成一个条码
详见前面配置表.
2.因PLC品牌不同,每个寄存器的可存取数据长度也不相同。
3.每个寄存器的值需要做转换,变成相应的值。

以上实例使用的是三菱品牌的plc,每个寄存器只可写入2个字节的数据。

以上如有错误,欢迎提出讨论更正。

FTPC--KepWare--OPC--PLC读写相关推荐

  1. python通过opc读plc实例_OPC通讯实例(C#通过OPC连接PLC读写数据)

    [实例简介]C#通过OPC连接PLC读写数据 [实例截图] [核心代码] using System; using System.Collections.Generic; using System.Co ...

  2. Kepware OPC与欧姆龙PLC通讯

    Kepware OPC与欧姆龙PLC通讯 编号:5616619869325777Luker

  3. 西门子 S7-200 通过模块连接 Kepware OPC 通讯方法

           产品简介:北京华科远创科技有限研发的远创智控ETH-YC模块,型号有MPI-ETH-YC01和PPI-ETH-YC01,适用于西门子S7-200/S7-300/S7-400.SMART ...

  4. TwinCAT 3 PLC 读写SDO

    TwinCAT 3 PLC 读写SDO SDO读写函数 plc pou(program organization unit) plc dut (data unit type) plc gvl (glo ...

  5. 两种方式实现Kepware与PLC之间的心跳检测

    在物联网开发中,上下位交互,如RFID信息交互时,下位有一个心跳检测的机制,超过指定时间心跳未触发,则认为通信不畅,从而触发下位报警逻辑 实现的方式有很多,这里介绍两种方式做参考,可能不是最优. 1 ...

  6. python 三菱plc读写_小说python操作PLC

    PLC(Programmable Logic Controller)可编程逻辑控制器,可以理解为一个微型计算机,广泛应用于工业控制中,如楼宇智控.精密机床.汽车电子等等. 随着物联网的兴起,越来越多的 ...

  7. 在C#程序中三菱PLC读写数据

    首先添加引用 三菱PLCdll文件 1.导入 命名空间: using HslCommunication.Profinet.Melsec; 2.声明一个PLC对象: private MelsecMcNe ...

  8. AB的Plc读写mysql数据库_Rockwell罗克韦尔(AB)PLC的数据存入SQL数据库,快速实现设备数据采集...

    通过数据库网关连接罗克韦尔1756-L72的以太网端口标签方式采集数据,将数据存入MySQL数据库,以下描述具体的操作步骤.PLC数据MQTT多主题发布/订阅西门子PLC数据采集到数据库 网关模块安装 ...

  9. InTouch与Kepware OPC server通讯配置

    InTouch与KepServer通讯方法很多种,下面讲解一种不通过FSGateway方法成功与KepServer通讯. 以下以InTouch 2014R2和KepServerEX6版本为例说明: 1 ...

  10. kepware OPC UA

最新文章

  1. Spark生态顶级项目汇总
  2. 机房配电柜、配电箱在安装时应该注意哪些“禁忌”?
  3. API测试工具Postman的下载安装与使用
  4. 漫画:什么是A*寻路算法
  5. fragment和Activity同时操作UI引起的延迟、卡顿
  6. 不同网段通过静态路由实现互通(强烈推荐)
  7. linux socket高性能服务器处理框架
  8. easyui 扩展tree 获取选中节点的级数
  9. 昨天晚上我们组到龙华苹果园附近的“东北人“吃东北菜
  10. 核心网技术之SDN学习总结
  11. JDK版本对应其major.minor version,看这一篇就够啦(附java历史版本下载地址)
  12. upload-labs刷关记录
  13. Excel数据透视表、数据透视图
  14. 3dmark压力测试 linux,拷机还用Furmark? 瞧瞧3DMark压力测试怎样玩
  15. 云服务器ECS选购集锦之九云服务器选购常见FAQ
  16. 从零学Java(17)之字符串连接,你要成为小学生之友吗?
  17. android和ios用户数,报告:苹果iOS用户数比Android多59%
  18. Qt图片绘图类 QPixmap
  19. 5GNR漫谈7:PUCCH信道设计
  20. jetson nano 安装远控软件 NoMachine

热门文章

  1. MP4转MP3无需各种会员的超级免费解决方案
  2. 区块链中的哈希是什么?
  3. AndroidStudio 安装及配置
  4. KNN分类算法及MATLAB程序与结果
  5. 2021年初级会计如何去学习?
  6. php做一个详情页面,微信小程序实现头条新闻详情页图文显示功能的实例详解
  7. Bootstrap 自定义
  8. vue调用手机摄像头
  9. 药品生产企业计算机管理,药品生产企业现场检查过程中计算机化管理系统存在的问题及.PDF...
  10. jQuery中的钩子函数