资源简介
这是PLC与上位机的MODBUS通讯程序,使用施耐德PLC已调试通过。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Threading;
using System.IO.Ports;
namespace HMI
{
public class EMS
{
public int[] AnalogArr;
public int[] SwitchArr;
private ArrayList SendArray = new ArrayList();
//public Thread SendThread RcvThread;
private SerialPort SPort = new SerialPort();
public bool IsOpen = false;
public string PortName = ““;
public int PortAddr = 1;
public bool PortFlag = false;
public int RcvTime = 0;
public bool isRead = true;
public EMS(int AnalogNumint SwitchNum)
{
AnalogArr = new int[256 AnalogNum];
SwitchArr = new int[256 SwitchNum];
}
//打开串口
public bool Open(string portName int baudRate int databits Parity parity StopBits stopBits int ReadTimeout int WriteTimeout)
{
try
{
if (!SPort.IsOpen)
{
PortName = portName;
SPort.PortName = portName;
SPort.BaudRate = baudRate;
SPort.DataBits = databits;
SPort.Parity = parity;
SPort.StopBits = stopBits;
SPort.ReadTimeout = ReadTimeout;
SPort.WriteTimeout = WriteTimeout;
SPort.Open();
ThreadPool.QueueUserWorkItem(new WaitCallback(SendMethod));
}
IsOpen = true;
return true;
}
catch { return false; }
}
//关闭串口
public bool Close()
{
try
{
if (SPort.IsOpen)
SPort.Close();
IsOpen = false;
return true;
}
catch
{
return false;
}
}
#region 检查CRC校验
private bool CheckResponse(byte[] response int Length)
{
byte[] CRC = new byte[2];
GetCRC(response Length ref CRC);
if (CRC[0] == response[Length - 2] && CRC[1] == response[Length - 1])
return true;
else
return false;
}
#endregion
#region 计算CRC
private void GetCRC(byte[] messageint Length ref byte[] CRC)
{
ushort CRCFull = 0xFFFF;
byte CRCHigh = 0xFF CRCLow = 0xFF;
char CRCLSB;
for (int i = 0; i < Length - 2; i++)
{
CRCFull = (ushort)(CRCFull ^ message[i]);
for (int j = 0; j < 8; j++)
{
CRCLSB = (char)(CRCFull & 0x0001);
CRCFull = (ushort)((CRCFull >> 1) & 0x7FFF);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11600 2014-11-04 15:48 Modbus_测试\Modbus_测试\Modbus_测试\bin\Debug\Modbus_测试.vshost.exe
文件 490 2009-08-31 00:40 Modbus_测试\Modbus_测试\Modbus_测试\bin\Debug\Modbus_测试.vshost.exe.manifest
文件 97792 2014-11-04 15:49 Modbus_测试\Modbus_测试\Modbus_测试\bin\Debug\Modbus_测试.pdb
文件 45568 2014-11-04 15:49 Modbus_测试\Modbus_测试\Modbus_测试\bin\Debug\Modbus_测试.exe
文件 12991 2014-04-02 13:19 Modbus_测试\Modbus_测试\Modbus_测试\EMS.cs
文件 11870 2014-10-28 12:17 Modbus_测试\Modbus_测试\Modbus_测试\EMS1.cs
文件 9445 2014-11-04 15:49 Modbus_测试\Modbus_测试\Modbus_测试\Form1.cs
文件 38691 2014-11-04 15:37 Modbus_测试\Modbus_测试\Modbus_测试\Form1.Designer.cs
文件 6398 2014-11-04 15:37 Modbus_测试\Modbus_测试\Modbus_测试\Form1.resx
文件 3921 2014-10-10 14:19 Modbus_测试\Modbus_测试\Modbus_测试\Form2.cs
文件 25188 2014-10-10 14:19 Modbus_测试\Modbus_测试\Modbus_测试\Form2.Designer.cs
文件 10513 2014-10-10 14:19 Modbus_测试\Modbus_测试\Modbus_测试\Form2.resx
文件 1169 2014-10-09 15:27 Modbus_测试\Modbus_测试\Modbus_测试\frmDaBaoCheng.cs
文件 12767 2014-10-09 15:27 Modbus_测试\Modbus_测试\Modbus_测试\frmDaBaoCheng.Designer.cs
文件 6011 2014-10-09 15:27 Modbus_测试\Modbus_测试\Modbus_测试\frmDaBaoCheng.resx
文件 15249 2014-11-04 15:49 Modbus_测试\Modbus_测试\Modbus_测试\ModbusClient.cs
文件 4445 2014-10-10 14:12 Modbus_测试\Modbus_测试\Modbus_测试\Modbus_测试.csproj
文件 7473 2014-07-21 09:16 Modbus_测试\Modbus_测试\Modbus_测试\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6347 2014-11-04 15:49 Modbus_测试\Modbus_测试\Modbus_测试\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 4671 2014-11-04 15:49 Modbus_测试\Modbus_测试\Modbus_测试\obj\x86\Debug\Modbus_测试.csproj.FileListAbsolute.txt
文件 180 2014-11-04 15:37 Modbus_测试\Modbus_测试\Modbus_测试\obj\x86\Debug\Modbus_测试.Form1.resources
文件 180 2014-11-04 14:35 Modbus_测试\Modbus_测试\Modbus_测试\obj\x86\Debug\Modbus_测试.Form2.resources
文件 180 2014-11-04 14:35 Modbus_测试\Modbus_测试\Modbus_测试\obj\x86\Debug\Modbus_测试.frmDaBaoCheng.resources
文件 180 2014-11-04 14:35 Modbus_测试\Modbus_测试\Modbus_测试\obj\x86\Debug\Modbus_测试.Properties.Resources.resources
文件 688 2014-11-04 15:37 Modbus_测试\Modbus_测试\Modbus_测试\obj\x86\Debug\GenerateResource.read.1.tlog
文件 1586 2014-11-04 15:37 Modbus_测试\Modbus_测试\Modbus_测试\obj\x86\Debug\GenerateResource.write.1.tlog
文件 97792 2014-11-04 15:49 Modbus_测试\Modbus_测试\Modbus_测试\obj\x86\Debug\Modbus_测试.pdb
文件 45568 2014-11-04 15:49 Modbus_测试\Modbus_测试\Modbus_测试\obj\x86\Debug\Modbus_测试.exe
文件 494 2014-10-20 13:07 Modbus_测试\Modbus_测试\Modbus_测试\Program.cs
文件 1376 2014-03-27 09:20 Modbus_测试\Modbus_测试\Modbus_测试\Properties\AssemblyInfo.cs
............此处省略20个文件信息
- 上一篇:简单登录界面代码asp.net
- 下一篇:QuadTree四叉树实现代码 C#
相关资源
- C# 调用win32 api函数-user32.dll详细说明
- C# 调用BarTender打印条码DEMO
- 大型比赛竞赛抽签系统 可打印 c# vs
- C#编写的Gerber查看器
- lua C# .Net4.0 vs2010 LuaInterface
- C#十六进制编辑器
- 明华URF-35H读卡器 C#读写源码 为大家
- C#文件流读取CSV文件
- c#读写PDF文件sql
- C# winform Socket大文件传输
- c#车牌识别系统附30张测试图片
- 《C#面向对象程序设计》源代码(CS)
- 金旭亮《C#面向对象程序设计》教案
- 试题库管理系统毕业论文(C#)源程序
- 学校网站原代码(C#.NET)
- C#-数据库操作技术-员工管理系统
- c#web开发入门经典
- C#与Matlab混合编程的几种方式
- c# 开发与 mysql数据库实现的增删改查
- C#异步操作 异步查询数据库 异步处理
- Basler相机通过IO触发源码
- [源代码] 《领域驱动设计 (C# 2008 实
- 松下PLC与C#通讯串口调试入门教程.z
- USB 继电器控制器 LCUS-1 保证能用 c#
- C# AES加密解密小工具
- C#圆形按钮,非常漂亮动态~~
- [精]C#仿QQ右下角弹出提示框()
- C#进程间通信-共享内存代码
- 有史以来最简单的三层(C#)
- vb调用c#编写的串口DLL文件(vb源码
评论
共有 条评论