Exemplo n.º 1
0
 /**
  * 写入位地址
  *
  * @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);
 }
Exemplo n.º 2
0
  /**
   * 将值写入地址
   *
   * @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);
        }
      }
    }
  }