利用SerialPort实现上位机与PLC的串行通信_精品文档.pdf
- 文档编号:3177310
- 上传时间:2022-11-19
- 格式:PDF
- 页数:2
- 大小:1.19MB
利用SerialPort实现上位机与PLC的串行通信_精品文档.pdf
《利用SerialPort实现上位机与PLC的串行通信_精品文档.pdf》由会员分享,可在线阅读,更多相关《利用SerialPort实现上位机与PLC的串行通信_精品文档.pdf(2页珍藏版)》请在冰豆网上搜索。
网络财富2009年1月156网络财富IntemetfortuneEducationFront教育前沿3.4.1法律咨询(或法律援助)是在法学教师的指导下,以学生为主体,面向社会提高法律服务这是一种比较灵活、节省时间的开支的法律实践方式。
如果我们通过电子法务教学模式,这些活动完全可以在学校甚至是课堂内解决。
学生就可以不利用节假日和业余时间,随时采取现场、热线电话、信件、网上等方式向老师进行咨询或向社会宣传法律、提供法律咨询、代写司法文书,可以起到收获知识和贡献社会的“双赢”效果。
3.4.2远程办理法律事务例如我们可以通过电子邮件、MSN等各种互联网通讯手段来进行合同审查的法律事务。
总之,随着知识技术的突飞猛进、信息的广泛传播、全球化的推波助澜和社会文化的快速发展,这一切都对教育产生了强烈的冲击,无论是理念上的还是实践上的,都起了根本性的改变。
电子法务教学模式就是这样一种应时代不断发展而生的新的教学范式。
依此设计出树立清晰科学的电子法务教学模式的理念、以全新的方式推动法学教育的发展的电子法务教学模式,目的是给当前的教育模式的理论和实践带来一些新的理念,有效地面对当前教育实践和改革的挑战,将会对高等教育体制产生更加深远的影响。
注释:
陈春法.在信息化环境中构建新型的教师培训模式英特尔未来教育的启示J.高等师范教育研究,2001,
(2):
32.作者简介:
梁剑兵(1961),男,山西岢岚人,法学学士,辽宁师范大学法学院副教授,硕士生导师。
刘霏雪(1983),女,辽宁法库人,辽宁师范大学法学院教育学硕士,研究方向:
法学教育。
利用SerialPort实现上位机与PLC的串行通信吴跃飞(聊城职业技术学院计算机系,山东聊城252000)【摘要】利用C的SerialPort完成了在上位机和西门子PLC串行通信,这种方法与传统的通信方式相比,实用性强,通信简单快捷、可靠性高。
在工业自动化控制具有很重要的意义。
【关键词】c#;SerialPort;PLC;串行通信引言在工业控制领域中,PLC作为一种高性能的现场控制装置,已广泛地用于各个领域,它具有卓越的可靠性和良好的抗干扰能力等优点但它也有自身的一些缺点,即PLC无法完成复杂的数据操作、运算与管理,不能为提供良好的用户界面,人机交互性能差,不利于操作者的操作及自动化处理。
而上位机恰好能弥补PLC的不足,它不但有很强的数据处理、运算能力和管理能力,而且能提供良好的用户界面又易于操作。
将PLC与上位机结合,两者相互操作,不但可使系统达到既能及时地采集、存储数据,又可进行数据的高级处理、运算与管理,达到管理、控制一体化。
两者结合的关键是PLC与上位机之间的通信,由于传统的通信方式主要是采用MSCOMM控件完成操作,这种方式有一个缺点就是在没有MSCOMM控件的机器上去部署的时会出错,这样还要去安装MSCOMM控件。
本文采用NET平台下的SerialPort实现PLC与上位机之间的通信,SerialPort具有丰富的与串行通信密切相关的属性及事件,提供了对串口的各种操作,并且在串口编程时非常方便,也容易去部署,而且在C语言中容易使用。
1.PLC通讯协议西门子公司的系列PLC因其具有功能强、速度快、扩展灵活等优点,在工业控制领域占据了重要地位,得到了十分广泛的应用。
1.1PPI协议西门子PLC与PC之间通信有很多种方式:
自由口,PPI方式,MPI方式,Profibus方式。
大多数使用自由口方式,自定义协议与PC通讯,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码较为烦琐,占用PLC的软件中断和代码资源,而且无法对PLC进行监控,给PLC程序调试带来不便。
西门子PLC的编程通讯接口,内部固化的通讯协议为PPI协议,如果PC遵循PPI协议来读写PLC,就可以省略编写PLC的通讯代码。
PLC可以不用编程,而且可读写所有数据区,快捷方便。
1.2PPI协议格式西门子的PPI通讯协议采用主从式的通讯方式。
一次读写操作的步骤包括:
首先上位机发出读写命令,PLC做出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。
这样收发两次数据,完成一次数据的读写。
(1)读写命令的数据格式。
读写命令的数据格式如下:
SDLELERSDDASAFCDASPSSAPDUFCSEDSD:
(StartDelimiter)开始定界符(68H)LE:
(Length)报文数据长度LER:
(RepeatedLength)重复数据长度SD:
(StartDelimiter)开始定界符(68H)SA:
(SourceAddress)源地址,指该地址的指针,为地址值乘以8DA:
(DestinationAddress)目标地址,指该地址的指针,为地址值乘以8FC:
(FunctionCode)功能码DSAP:
(DestinationServiceAccessPoint)目的服务存取点SSAP:
(SourceServiceAccessPoint)源服务存取点DU:
(DataUnit)数据单元FCS:
(FrameCheckSequence)校验码ED:
(EndDelimiter)结束分界符(16H)报文数据长度和重复数据长度为自DA至DU的数据长度,校验码为DA至DU数据的和校验,只取其中的末字节值。
在读写PLC的变量数据中,读数据的功能码为6CH,写数据的功能码为7CH。
读:
读命令是33个字节。
前面的0-21字节是相同的,为:
681B1B68206C32100000E004112A10。
读命令中从DA到DU的长度为27个字节。
从22字节开始根据读取数据的类型、位置不同而不同。
(见表1)写:
写命令是40个字节,前面的021字节为:
6823236802006C320100000000000E00000401120A10。
从22字节开始根据写入数据的值和位置不同而变化。
(见表2)
(2)PLC接收到读写命令,校验后正确,返回的数据格式为E5H。
2009年1月网络财富157网络财富EducationFrontIntemetfortune教育前沿(3)确认读写命令的数据格式为:
SDSADAFCFCSED其中SD为起始符,为10HSA为数据源地址DA为目的地址FC为功能码,取5CHFCS为SA+DA+FC的和的末字节ED为结束符,取16HSDSADAFCFCSED10H02H00H5CH5EH16H2.通讯编程实现C#是可用于创建要运行在NET上的应用程序的语言之一,它从C和C+语言演化而来,是Microsoft专门为使用NET平台而创建的。
因为C#是近期发展起来的,所以吸取了以前的教训,考虑了其他语言的许多优点,并解决了它们的问题。
使用C#开发应用程序比较简单。
C#的优点是,它是惟一为NETFramework设计的语言,是在移植到其他操作系统上的NET版本中使用的主要语言。
在Windows环境下开发与工业PLC通信的软件,在以前是用VB6.0的MSCOMM控件,而在NET中被升级为SerialPort。
利用该控件的操作很方便地实现串口通信。
2.1SerialPort的初始化SerialPort通信参数的初始化在窗体加载中完成,程序如下:
serialPort1.PortName=“com1”;/打开串行端口1serialPort1.BaudRate=9600;/设置波特率为9600bpsserialPort1.DataBits=8;/8位数据位serialPort1.StopBits=System.IO.Ports.StopBits.One;/1位停止位serialPort1.Parity=System.IO.Ports.Parity.None;/无奇偶校验2.2发送指令如要读取VB100的数据,代码如下:
strcom=newbyte330x68,0x1B,0x1B,0x68,0x02,0x00,0x6C,0x32,0x01,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x04,0x01,0x12,0x0A,0x10,0x01,0x00,0x01,0x00,0x01,0x81,0x00,0x00,0x00,0x00,0x00;stringtemp=Convert.ToString(100*8,16);/计算校验码for(inti=temp.Length;i4;i+)temp=“0”+temp;strcom29=(byte)Convert.ToByte(temp.Substring(0,2),16);strcom30=(byte)Convert.ToByte(temp.Substring(2,2),16);intfc=0;for(inti=4;i=30;i+)fc+=strcomi;fc=fc%256;temp=Convert.ToString(fc,16);strcom31=(byte)Convert.ToByte(temp.ToString(),16);strcom32=0x16;serialPort1.Write(strcom,0,strcom.Length);/发送指令2.3接受数据PC会接到两次数据,第一次是响应数据,第二次是真正的结果,代码如下:
privatevoidDataReceived(objectsender,System.IO.Ports.SerialDataReceivedEventArgse)intbytes=ComPort.BytesToRead;/获取字节长度bytebuffer=newbytebytes;serialPort1.Read(buffer,0,bytes);/读取缓冲区的数据到数组if(buffer0=0xE5)/响应数据bytere=newbyte60x10,0x02,0x00,0x5C,0x5E,0x16;serialPort1.Write(re,0,re.Length);/发送确认命令elsenum=buffer25;/真正数据3.结论随着PLC应用的日益普及,对PLC的监控和管理十分重要,在PLC与上位机的通信中,使用了一种新类SerialPort去解决,SerialPort较以前的MSCOMM有了明显的优化,在实际应用中只要掌握了上位机与PLC的通信协议,就可以开发出交互界面友好,功能强大的应用系统,满足现代自动化系统向信息化、网络化的转换。
参考文献1范逸之等.利用VisualBasic实现串并行通信技术M.北京:
清华大学出版社,2001.2黄植功.PC与PLC的串口通信及编程实现J.广西物理,2007,28(3):
35-38.3王生发,潘敏.VB下PLC与PC的通信在工业机器人监控系统中的应用J.机电工程,2001,18(6):
35-37.注:
此论文为山东省教育厅2008年第三批科研发展计划立项课题(课题编号:
J08LJ60)。
作者简介:
吴跃飞(1980),男,山东聊城人,聊城职业技术学院计算机系教师。
表1字节2223242526272829303132功能读取长度数据个数存储器类型存储器偏移量指针校验结束读q0.00100010000820000006416读m0.00100010000830000006516读M0.10100010000830000016616读SMB34020001000005000110F916读VB1000200010001840003208B16读VW1000400010001840003208D16读vd1000600010001840003208F16读i0.501000100008100000568
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 SerialPort 实现 上位 PLC 串行 通信 精品 文档
![提示](https://static.bdocx.com/images/bang_tan.gif)