FTPC--KepWare--OPC--PLC读写

一般来说,读写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.jsonComm
    syncURL ="http://10.xx.xx.xx:8156/web?method_type=INIT&line_name="+lineName
    jsonStr = 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个字节的数据。

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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值