Código fuente del sistema Plc
¿Usar? sistema. recolectar. Genéricos;
¿Uso? Sistema;
¿Uso? sistema. Linq
¿Usar? sistema. Dibujo;
¿Uso? sistema. Diagnóstico;
¿Uso? sistema. Datos;
¿Uso? sistema. XML . Linq
¿Usar? Microsoft. VisualBasic
¿Uso? sistema. Colección;
¿Uso? sistema. Formularios de Windows
¿Usar? System.Net;
¿Usar? sistema. Tiempo de ejecución .InteropServices
¿espacio de nombres? TCP_Client
{
¿Público? ¿parte? ¿clase? Formulario 1
{
¿Público? Formulario 1()
{
inicializar componente();
¿Si? (instancia predeterminada?==?null)
instancia predeterminada? =?Esta;
}
#Región? ¿Incumplimiento de contrato? Situación
¿Privado? ¿Electricidad estática? ¿Forma1? Instancia predeterminada;
¿Pública? ¿Electricidad estática? ¿Forma1? Predeterminado
{
Obtener
{
¿Si? (instancia predeterminada?==?null)
{
instancia predeterminada? =?¿Nuevo? formulario 1();
Instancia predeterminada. ¿Formulario cerrado? =?¿Nuevo? FormClosedEventHandler (instancia predeterminada _ formulario cerrado);
}
¿Regresar? Instancia predeterminada;
}
Configuración
{
¿Instancia predeterminada? =?Valor;
}
}
¿Electricidad estática? ¿Vacío? instancia predeterminada _ formulario cerrado (¿objeto? ¿Remitente? FormClosedEventArgs? e)
{
instancia predeterminada? =?null
}
#Área final
EntFxPlc. ¿Cliente Plc? ¿SOCIEDAD ANÓNIMA? =?¿Nuevo? EntFxPlc. PlcClient();
¿Booleano? EntLink
¿Dragón? Recuento de escaneos;
¿Corto? ScanRet
Int32? PlcHand
[DllImport("winmm.dll ",ExactSpelling=true,?CharSet=CharacterSet.Ansi,?SetLastError=true)]
¿Público? ¿Electricidad estática? ¿externo? UInt32? time gettime();
¿Público? ¿Vacío? Form1_Load(System.Object?Sender?System.EventArgs?e)
{
Esto. centerto screen();
cmbReadMry. elementos . Borrar();
cmbReadMry. elementos . Agregar(" X ");
cmbReadMry. elementos . Agregar(" Y ");
cmbReadMry.
elementos . Agregar(" M ");
cmbReadMry. elementos . Agregar(" D ");
cmbWriteMry. items.Clear();
cmbWriteMry. elementos . Agregar(" X ");
cmbWriteMry. elementos . Agregar(" Y ");
cmbWriteMry. elementos . Agregar(" M ");
cmbWriteMry. elementos . Agregar(" D ");
cmbBitMry. items.Clear();
cmbBitMry. elementos . Agregar(" X ");
cmbBitMry. elementos . Agregar(" Y ");
cmbBitMry. elementos . Agregar(" M ");
cmbReadType. elementos . Borrar();
cmbReadType. elementos . Agregar(" int 16 ");
cmbReadType. elementos . Agregar(" uint 16 ");
cmbReadType. elementos . Agregar(" dint 32 ");
cmbReadType. elementos . Agregar(" hexadecimal 32 ");
cmbReadType. elementos . Agregar(" real 32 ");
cmbReadType. elementos . Agregar(" bin 16 ");
cmbWriteType. elementos . Borrar();
cmbWriteType. elementos . Agregar(" int 16 ");
cmbWriteType. elementos . Agregar(" uint 16 ");
cmbWriteType. elementos . Agregar(" dint 32 ");
cmbWriteType. elementos . Agregar(" hexadecimal 32 ");
cmbWriteType. elementos . Agregar(" real 32 ");
cmbWriteType. elementos . Agregar(" bin 16 ");
cmbReadMry. ¿Índice seleccionado? =?3;
cmbWriteMry. ¿Índice seleccionado? =?3;
cmbBitMry. ¿Índice seleccionado? =?2;
cmbReadType. ¿Índice seleccionado? =?0;
cmbWriteType. ¿Índice seleccionado? =?0;
Estered. items.Clear();
txtWrite. ¿Palabra? =?"";
cmbCmdType. ¿Índice seleccionado? =?0;
}
¿Público? ¿Vacío? peroLink_Click(System.Object?Sender?System.EventArgs?e)
{
¿Corto? ¿re? =?0;
¿Cadena? ¿Descansar? =?"";
¿re? =?PLC. EntLink(txtLocalIP.
Texto.Recortar(),? Convertir. ToUInt16(txtLocalPort.Text),? txtRemoteIP. Texto.Recortar(),? (Convert.ToUInt16(txtRemotePort.Text)), "Demostración",? ¿árbitro? PlcHand, ¿convertir? .ToUInt16? (1000), ¿conversión? . ¿A booleano? (cmbCmdType?.SelectedIndex?));
txtReLink. ¿Palabra? =?Acerca de. ToString();
¿Si? (re?==?0)
{
EntLink? =?Verdadero;
Cuadro de mensajes. Display("¡Conexión PLC exitosa!");
}
Otro
{
EntLink? =?Falso;
Cuadro de mensaje. display("Error en la conexión del PLC:?"? ?restr);
}
}
¿Público? ¿Vacío? butClose_Click(System.Object?Sender?System.EventArgs?e)
{
¿Corto? ¿re? =?0;
EntLink? =?Falso;
re? =?PLC. Drink(PlcHand);
txt está cerrado. ¿Palabra? =?Acerca de. ToString();
}
¿Público? ¿Vacío? peroRead_Click(System. Object? Remitente? System. EventArgs? e)
{
¿Corto? ¿I? =?0;
Objeto[]? ¿RD? =?nulo
RD? =?¿Nuevo? Objeto[Convertir. ToUInt16(txtReadCnt.Text)];
¿Si? (!EntLink)
{
Cuadro de mensajes. Show("¡La conexión con el PLC aún no se ha establecido!");
Return
}
int? var1? =?cmbReadType. ¿Índice seleccionado? ?1;
EntFxPlc. ¿Tipo de datos? ¿tipo? =?(EntFxPlc?.plcclient.datatype)var 1;
¿Cambiar? (cmbReadMry.SelectedIndex)
{
¿Caso? 0:
¿EscanearRet? =?PLC. CmdRead(PlcHand, EntFxPlc.PlcClient.PlcMemory.DI, ? Típico, Convert. touint 16(txtreadedd. Text), ? Convert. ToUInt16(txtReadCnt. Text), ? Ref? RD);
¿Caso? 1:
¿EscanearRet? =?PLC. CmdRead(PlcHand, ?EntFxPlc.PlcClient.PlcMemory.DQ, ?typ, ?convert.touint 16(txtreadedd.text), ?convert.ToUInt16(txtReadCnt.text), ?ref?rd);
Rotura;
¿Caso? 2:
¿EscanearRet? =?PLC. CmdRead(PlcHand,?EntFxPlc.Hola, señor?typ,?Convert.touint 16(txtreadedd.Text),?Convert.ToUInt16(txtReadCnt.
texto),? ¿árbitro? RD);
Rotura;
¿Caso? 3:
¿EscanearRet? =?PLC. CmdRead(PlcHand,?EntFxPlc.PlcClient.PlcMemory.DR.?typ,?Convert.touint 16(txtreadedd.Text),?Convert.ToUInt16(txtReadCnt.Text),?Ref?RD);
Pausa;
}
txtReRead. ¿Palabra? =?Scanret. ToString();
Eastred. elementos . Clear();
¿Para qué? (i?=?0;?i?lt=?(RD.length?-?1);?i)
{
Si? (!(RD[i]?==?null))
{
Eastred. elementos . Agregar(RD[I]);
}
Otro
{
Eastred. elementos . Agregar(" 0 ");
}
}
}
¿Público? ¿Vacío? peroWrite_Click(System. Object? Remitente? System. EventArgs? e)
{
¿Corto? ¿I? =?0;
cadena[]? ¿Trabajador temporal? =?nulo
Objeto[]? ¿WD? =?nulo
¿Y si? (!EntLink)
{
Cuadro de mensaje. Show("¡La conexión con el PLC aún no se ha establecido!");
Return
}
WD? =?¿Nuevo? Objeto[Convertir. ToUInt16(txtWriteCnt.Text)];
¿Trabajador temporal? =?txtEscribir. texto . Split(' \ n ');
¿Para qué? (i?=?0;?i?lt=?(WD.length?-?1);?i)
{
Si? (i? gt? (temperatura.longitud?-?1))
{
WD[i]? =?0;
}
Otro
{
WD[i]? =?temperatura[i]. trim();
}
}
int? var1? =?cmbWriteType. ¿Índice seleccionado? ?1;
EntFxPlc. ¿Tipo de datos? ¿tipo? =?(EntFxPlc.PlcClient.DataType)var 1;
¿Cambiar? (cmbWriteMry.SelectedIndex)
{
¿Caso? 0:
¿EscanearRet? =?PLC. CmdWrite(PlcHand, ?EntFxPlc.PlcClient.PlcMemory.DI, ?typ, ?Convert.ToUInt16(txtWriteAdd.Text), ?Convert.ToUInt16(txtWriteCnt.Text), ?ref?WD);
Break ;
¿Caso? 1:
¿EscanearRet? =?PLC. CmdWrite(PlcHand,?EntFxPlc.PlcClient.PlcMemory.DQ,?typ,?Convert.ToUInt16(txtWriteAdd.text),?Convert.
ToUInt16(txtWriteCnt.Text),? ¿árbitro? WD);
Rotura;
¿Caso? 2:
¿EscanearRet? =?PLC. CmdWrite(PlcHand,?EntFxPlc.Hola, señor?typ,?Convert.ToUInt16(txtWriteAdd.text),?Convert.ToUInt16(txtWriteCnt.text),?ref?WD); p>
¿Caso? 3:
¿EscanearRet? =?PLC. CmdWrite(PlcHand,?EntFxPlc.PlcClient.PlcMemory.DR.?typ,?Convert.ToUInt16(txtWriteAdd.Text),?Convert.ToUInt16(txtWriteCnt.Text),?ref?WD);
Break ;
}
txtReWrite. ¿Palabra? =?Scanret. ToString();
}
¿Público? ¿Vacío? peroScan_Click(System.Object?Sender?System.EventArgs?e)
{
¿Si? (!EntLink)
{
Cuadro de mensaje. Show("¡La conexión con el PLC aún no se ha establecido!");
Return
}
If? (pero¿Escanear. Texto? ==? "¿Bucle? Leer/Escribir")
{
¿ScanCount? =?0;
Temporizador 1. ¿Permitir? =?Verdadero;
Pero escaneado. ¿Palabra? =?"¿Parar? Leer/Escribir";
}
Otro
{
Temporizador 1. ¿Permitir? =?Falso;
Pero escanea. ¿Palabra? =?"¿Bucle? Lectura/Escritura";
}
}
¿Público? ¿Vacío? Timer1_Tick(System.Object?Sender?System.EventArgs?e)
{
Timer1. ¿Permitir? =?Falso;
int? Tim. =?Sistema. convertir . toint 32(time gettime());
¿Si? (!EntLink)
{
Cuadro de mensaje. Show("¡La conexión con el PLC aún no se ha establecido!"
Return
}
//
butRead_Click(null, null);
butWrite_Click(null,?null);
//
¿Si? ((Convert. toint 32(txt read. Text)? lt? 0)?||?(Convert. ToInt32(txtReWrite. Text)? lt? 0))
{
Pero escanea. ¿Palabra? =?"¿Bucle? Lectura/Escritura";
Regresar;
}
Otro
{
recuento de escaneos;
txtScanCnt. ¿Palabra? =?Recuento de escaneos. ToString();
txtScanPrd. ¿Palabra? =?(System.Convert.ToInt32(timeGetTime())?-?Tim). ¿ToString()? ?"Señora.";
}
Temporizador 1.
¿Permitir? =?Verdadero;
}
¿Público? ¿Vacío? peroBitTest_Click(System. Object? Remitente? System. EventArgs? e)
{
¿Si? (!EntLink)
{
Cuadro de mensajes. Show("¡La conexión con el PLC aún no se ha establecido!");
Retorno;
}
¿Booleano? er? =?Falso;
¿Corto? ¿re? =?0;
¿Cambiar? (cmbBitMry.SelectedIndex)
{
¿Caso? 0:
¿re? =?PLC. Bit_Test(PlcHand,?EntFxPlc.PlcClient.PlcMemory.DI,?Convert.ToUInt16(txtBitAdd.Text),?ref?rd);
Rotura;
¿Caso? 1:
¿eres? =?PLC. Bit_Test(PlcHand,?EntFxPlc.PlcClient.PlcMemory.DQ,?Convert.ToUInt16(txtBitAdd.Text),?ref?rd);
Rotura;
¿Caso? 2:
¿eres? =?PLC. Bit_Test(PlcHand,?EntFxPlc.Hola, señor?Convert.ToUInt16(txtBitAdd.Text),?Ref?rd);
Pausa;
}
txtBitTest. ¿Palabra? =?I+D. ToString();
txtReBit. ¿Palabra? =?Acerca de. ToString();
}
¿Público? ¿Vacío? peroBitSet_Click(System. Object? Remitente? System. EventArgs? e)
{
¿Si? (!EntLink)
{
Cuadro de mensajes. Show("¡La conexión con el PLC aún no se ha establecido!");
Retorno;
}
¿Corto? ¿re? =?0;
¿Cambiar? (cmbBitMry.SelectedIndex)
{
¿Caso? 0:
¿re? =?PLC. Bit_Set(PlcHand,?EntFxPlc.PlcClient.PlcMemory.DI,?Convert.ToUInt16(txtBitAdd.Text));
Rotura;
¿Caso? 1:
¿eres? =?PLC. Bit_Set(PlcHand,?EntFxPlc.PlcClient.PlcMemory.DQ,?Convert.ToUInt16(txtBitAdd.Text));
Rotura;
¿Caso? 2:
¿eres? =?PLC. Bit_Set(PlcHand,?EntFxPlc.Hola, señor?Convert.ToUInt16(txtBitAdd.Text));
Pausa;
}
txtReBit. ¿Palabra? =?Acerca de. ToString();
}
¿Público? ¿Vacío? peroBitRst_Click(System. Object? Remitente? System. EventArgs? e)
{
¿Si? (!EntLink)
{
Cuadro de mensajes.
Show("¡La conexión con el PLC aún no se ha establecido!");
Retorno;
}
¿Corto? ¿re? =?0;
¿Cambiar? (cmbBitMry.SelectedIndex)
{
¿Caso? 0:
¿re? =?PLC. Bit_Reset(PlcHand,?EntFxPlc.PlcClient.PlcMemory.DI,?Convert.ToUInt16(txtBitAdd.Text));
Rotura;
¿Caso? 1:
¿eres? =?PLC. Bit_Reset(PlcHand,?EntFxPlc.PlcClient.PlcMemory.DQ,?Convert.ToUInt16(txtBitAdd.Text));
Rotura;
¿Caso? 2:
¿eres? =?PLC. Bit_Reset(PlcHand,?EntFxPlc.Hola, señor?Convert.ToUInt16(txtBitAdd.Text));
Pausa;
}
txtReBit. ¿Palabra? =?Acerca de. ToString();
}
}
}