//scan DIO slave status private void systemScan(FlowVar fv) { //while (true) //{ if (keyOfIOScan) { I16 status; for (byte portNo = 0; portNo < 4; portNo++) { status = CCMNet.CS_mnet_io_input(RingNoOfMNet, dIOPara.SlaveIP, portNo); for (int i = 0; i < 8; i++) { Status1[portNo * 8 + i] = BitConverterEx.TestB(status, (byte)i); Status2[portNo, i] = BitConverterEx.TestB(status, (byte)i); } } //Thread.Sleep(15); //if (Environment.ProcessorCount == 1 || (++_loops % 100) == 0) //{ // Thread.Sleep(1); //} //else //{ // Thread.SpinWait(_iterations); //} } //} }
/// <summary> /// 設定Output數值 /// </summary> /// <param name="portNo">Port Number</param> /// <param name="bitNo">Bit Number</param> /// <param name="status">寫入成功回傳true,反之false(DI點一定false)</param> /// <returns></returns> public bool SetOutput2(PortNo portNo, BitNo bitNo, bool status) { if (dIOPara.IsActive) { I16 retOfIO = CCMNet.CS_mnet_io_input(RingNoOfMNet, dIOPara.SlaveIP, (U8)portNo); BitConverterEx.SetBit(ref retOfIO, (byte)bitNo, status); I16 retOfSetOutput = CCMNet.CS_mnet_io_output(RingNoOfMNet, dIOPara.SlaveIP, (U8)portNo, (byte)retOfIO); if (retOfSetOutput >= 0) { return(true); } else { return(false); } } else { return(false); } }