如何用c#写hostlink协议

如何用c#写hostlink协议,第1张

摘要:文章对欧姆龙CS系列PLC的HostLink通信协议进行了介绍,并提出了使用c#利用Visual Studio 2005中的SerialPort控件实现PLC与上位机通信的方法,给出了实现通信的具体步骤以及优化的通信方案,这种通信方案保证了通信的准确性,提高了通信的实时性。通过上位机对PLC的读写,实现了对工业现场数据的自动采集,可以有效地对工业现场设备进行监控和管理。编写的串口通信软件在实际项目中得到了成功应用,验证了它的可靠性和稳定性。论文

关键词:c#PLCHostLink协议串口通信数据采集

1引言PLC是基于电子计算机、且适用于工业现场工作的电控制器,以其稳定的性能、方便的编程而广泛应用于工业控制领域。PLC也是一种工业控制计算机,和一般的计算机系统一样有CPU、存储器这两个基本的组成部分,另外还具有I/O接口、I/O扩展口和通信口等用来完成特定的功能。可编程控制器和相关的外部设备按照工业控制系统的要求联成一个整体,而且其功能易于扩充,但PLC的人机交互性能较差。因此在工业PLC控制系统中,PLC通常处于控制层面,而管理层和人机界面由终端面板、工控机、普通计算机或专用计算机来担当。一个PLC控制系统的设计通常由PLC下位机完成数据的采集任务,由上位机完成数据的实时显示和控制处理功能,这样用来实现系统的人机交互性能和可 *** 作性。实现PLC与上位机之间的通信主要采用三种方式:第一是通过使用PLC开发商提供的系统协议和网络适配器来实现PLC与PC机的互联通信。但是其通信协议是不公开的,因此互联通信必须使用PLC开发商提供的上位机组态软件。这种方式其实现的功能难以满足不同用户的需求。第二是使用目前通用的上位机组态软件,如组态王、In Touch、WinCC及力控等。这种方式除了需要增加系统投资外,其应用的灵活性也受到了一定的限制。第三种方法是利用PLC厂商所提供的标准通信端口和由用户自定义的自由口通信方式来实现PLC与PC机的互连通信,这种方式不需要增加投资,灵活性好,特别适合于小规模的控制系统。

2上位机利用c#实现串口通信的方法上位机通信部分可以用高级语言如VB、VC、JAVA、c#等直接开发编制。本文使用c#借助Visual Studio 2005开发了上位机应用程序的设计,串口通信的实现主要借助于Visual Studio2005提供的SerialPort控件。该控件封装了使用RS232开发串行通信软件的细节。2.1命名空间System.IO.Ports命名空间包含了控制串口重要的SerialPort类,该类提供了同步I/O和事件驱动的I/O、对管脚和中断状态的访问以及对串行驱动程序属性的访问,所以在程序代码起始位置需加入Using System.IO.Ports。2.2串口的通信参数串口通信最常用的参数就是通信端口号及通信格式(波特率、数据位、停止位和校验位),SerialPort类对分别用[BaudRate]、[Parity]、[DataBits]、[StopBits]属性设置通信格式中的波特率、校验位、数据位和停止位。

1、打开CX-Programmer,选择菜单-PLC- *** 作模式-监视;设置欧姆龙PLC模式为监控模式,因为运行模式的时候,部分寄存器不支持写 *** 作。

2、新工程-新PLC1[CP1E]监视模式-设置,分别设置串口波特率(9600),数据位(8),停止位(1),奇偶校验位(N)以及模式(Host Link)。

3、进行LabVIEW串口开发之前,需要安装VISA驱动,才可以通过LabVIEW的VISA 函数发送和读取指令。

4、所有寄存器的读写,必须按照Hostlink格式编写协议。

5、安装Hostlink说明说FCS的计算方法(FCS把从一帧的开始到FCS前面的数据进行逻辑异或得到的8位数据变换成2个字符的ASCII码,对接收到数据信息的各帧计算FCS,并同时附加在帧后的FCS进行对比照校合,就能检查数据的错误),LabVIEW实现如下的程序。

6、可以根据反馈码判断错误类型。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7923335.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存