/** * 写入位地址 * * @param prop */ private void setBit(AddrProp prop, int value) { Vector<Integer> mydataListInt = new Vector<Integer>(); SEND_DATA_STRUCT mSendData = new SEND_DATA_STRUCT(); mSendData.eReadWriteCtlType = READ_WRITE_COM_TYPE.GLOBAL_LOOP_W; mSendData.eDataType = DATA_TYPE.BIT_1; mydataListInt.add(value); PlcRegCmnStcTools.setRegIntData(prop, mydataListInt, mSendData); }
/** * 将值写入地址 * * @param inputKeyString */ private void writeToAddr(String inputKeyString) { // 输入完成后,执行通知操作通知 noticeAddr(info.getmTouchinInfo(), true); // 进行输入完成后 执行宏指令 // 若启用宏指令 if (true == info.isbIsStartStatement()) { // 请求执行控件宏指令 MacroManager.getInstance(null).Request(MSERV.CALLCM, (short) info.getnScriptId()); } // 将输入的值进行数据类型进行转换 byte[] by = converCodeWrite(inputKeyString); // 将输入转换后的数组写入地址 Vector<Byte> dataList = new Vector<Byte>(); if (0 != by.length) { if ((AcillCode.UNICODE & info.getnCode()) == AcillCode.UNICODE) { for (int i = 2; i < by.length; i++) { dataList.add(by[i]); } } else { for (int i = 0; i < by.length; i++) { dataList.add(by[i]); } } } SEND_DATA_STRUCT mSendData = new SEND_DATA_STRUCT(); mSendData.eDataType = DATA_TYPE.ASCII_STRING; mSendData.eReadWriteCtlType = READ_WRITE_COM_TYPE.GLOBAL_LOOP_W; if (null != info.getnAddress()) { if (info.getmOffSetAddress() != null) { int nAddrLeng = info.getmOffSetAddress().nAddrLen; if (nAddrLeng * 2 > dataList.size()) { for (int i = dataList.size(); i < nAddrLeng * 2; i++) { dataList.add((byte) 0x00); } } if (info.isInputIsShow()) // 输入地址跟显示地址一样 { PlcRegCmnStcTools.setRegAsciiData(info.getmOffSetAddress(), dataList, mSendData); } else { // 输入地址跟显示地址不一样,写入地址时,传入输入地址 PlcRegCmnStcTools.setRegAsciiData(info.getInputAddr(), dataList, mSendData); } } else { int nAddrLeng = info.getnAddress().nAddrLen; if (nAddrLeng * 2 > dataList.size()) { for (int i = dataList.size(); i < nAddrLeng * 2; i++) { dataList.add((byte) 0x00); } } if (info.isInputIsShow()) // 输入地址跟显示地址一样 { PlcRegCmnStcTools.setRegAsciiData(info.getnAddress(), dataList, mSendData); } else { PlcRegCmnStcTools.setRegAsciiData(info.getInputAddr(), dataList, mSendData); } } } }