Esempio n. 1
0
		private void UpdateNodesEnabled()
        {
			if (plc != null && plc.Connected)
				return;

			mcOMRON.TransportType transportType = (mcOMRON.TransportType)transport_type.SelectedItem;

			if (transportType == mcOMRON.TransportType.Tcp)
			{
				destination_node.Enabled = false;
				source_node.Enabled = false;
			}
			else
            {
				destination_node.Enabled = true;
				source_node.Enabled = true;
			}
		}
Esempio n. 2
0
		/// <summary>
		/// try to connect to the plc
		/// </summary>
		private void Connect()
		{
			if (string.IsNullOrWhiteSpace(ip.Text) || string.IsNullOrWhiteSpace(port.Text))
				return;

			try
			{
				mcOMRON.TransportType protocol = (mcOMRON.TransportType) transport_type.SelectedItem;
				plc = new OmronPLC(protocol);
				
				IPAddress ipAddress = IPAddress.Parse(ip.Text);
				int port = Convert.ToInt32(this.port.Text);
				
				switch(protocol)
				{
					case mcOMRON.TransportType.Tcp:
						tcpFINSCommand tcpFinsCommand = (tcpFINSCommand) plc.FinsCommand;
						tcpFinsCommand.SetTCPParams(ipAddress, port);
						break;

					case mcOMRON.TransportType.Udp:
						if (string.IsNullOrWhiteSpace(source_node.Text) || string.IsNullOrWhiteSpace(destination_node.Text))
							return;

						int sa1 = Convert.ToInt32(source_node.Text);
						int da1 = Convert.ToInt32(destination_node.Text);
						
						udpFINSCommand udpFinsCommand = (udpFINSCommand) plc.FinsCommand;
						udpFinsCommand.SetUDPParams(ipAddress, port, sa1, da1);
						
						break;
				}

				// connection
				//
				if (! plc.Connect())
				{
					throw new Exception(plc.LastError);
				}

				if (protocol == mcOMRON.TransportType.Tcp)
				{
					tcpFINSCommand tcpFinsCommand = (tcpFINSCommand) plc.FinsCommand;
					
					destination_node.Text = tcpFinsCommand.DA1.ToString();
					source_node.Text = tcpFinsCommand.SA1.ToString();
				}

				// set UI
				//
				bt_connect.Enabled = false;
				ip.Enabled = false;
				this.port.Enabled = false;
				destination_node.Enabled = false;
				source_node.Enabled = false;
				transport_type.Enabled = false;
				bt_close.Enabled = true;
				bt_connection_data_read.Enabled = true;
				bt_speed_test.Enabled = true;
				groupWord.Enabled = true;
				groupBit.Enabled = true;
				groupDialogText.Enabled = true;
				dialog.Clear();
			}
			catch (Exception ex)
			{
				MessageBox.Show("Connect() error: " + ex.Message);
			}
		}