Example #1
0
 //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);
         //}
     }
     //}
 }
Example #2
0
 /// <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);
     }
 }