西门子200Smart PLC的Socket通信技术

发布者:平安幸福最新更新时间:2022-12-12 来源: elecfans关键字:西门子  PLC 手机看文章 扫描二维码
随时随地手机看文章

对于自控或电气工程师来说,西门子PLC是每个人都非常熟悉的一款PLC品牌;而对于上位机开发工程师来说,Socket通信或TCP/IP协议也是必须要掌握的一种通信方式。刚好手头有一款西门子的200Smart PLC,可以利用它来跟大家聊聊Socket通信的那些事儿。


相比较而言,西门子PLC对Socket通信的支持性是很不错的。如果你在使用西门子软件或者逛西门子论坛时,发现一个词叫做Open User CommunicaTIon或开放式通信,没错,那其实就是我们说的Socket通信方式。关于这一点,我们可以从以下两张图中看出,分别为S7-200Smart编程软件Micro/Win Smart V2.5及博途TIA V15.1编程软件中关于通信库的部分截图:

e6739534-79b4-11ed-8abf-dac502259ad0.png

我们可以看到无论是西门子的中高端PLC还是低端PLC,都是支持开放式TCP/UDP通信的,既然都支持,我们来看下如何实现。


众所周知,对于Socket通信来说,是可以支持TCP、UDP等多种通信方式,但是今天在这里,我们主要针对TCP这种通信方式。除此以外,大家都知道,Socket会存在服务器和客户端的说法,也就意味着,同样是使用Socket通信,我们仍然需要确定到底PLC是作为服务器还是作为客户端,因为不管对于PLC编程或者上位机开发来说,这两种方式都是完全不同的,下面做具体介绍。


PLC作为TCP服务器的实战应用   PART 01  


(1)PLC编程

1.1   创建一个TCPServer的子程序,拖拽一个TCP_CONNECT的库指令,对于该指令的每个引脚对应的含义,大家可以按下F1直接获取在线帮助,程序段1编写如下图所示: 

e688a3a2-79b4-11ed-8abf-dac502259ad0.png

1.2  拖拽一个TCP_SEND的库指令,对于该指令的每个引脚填写,ConnID为1,Req为触发条件,必须为沿信号,这里为了方便,直接使用1秒的脉冲信号,DataLen及DataPtr为发送的起始字节指针及发送的字节长度,程序段2如下图所示:

e6aec28a-79b4-11ed-8abf-dac502259ad0.png

1.3  拖拽一个TCP_RECV的库指令,对于该指令的每个引脚填写,ConnID统一为1,MaxLen为接收的最大程度,DataPtr表示接收字节存放的起始位置,程序段3如下图所示:

1.4  最后需要编译,编译会提示需要给库分配地址,点击文件下的存储器,给该库分配地址即可,然后在MAIN主程序中调用TCPServer这个子程序,并下载到PLC中,PLC编程部分结束。

e6c64c84-79b4-11ed-8abf-dac502259ad0.png

(2)TCP调试助手测试

如果PLC程序编写没问题,打开一个网络调试助手,输入对应的IP地址及端口号,即可连接上服务器。

连接服务器后,PLC端会自动每隔一秒发送200个字节数据过来,这200个字节即对应VB100-VB299的值。

(3)上位机客户端软件开发

通过与编程软件的状态图表进行对照,可以实时读取PLC数据,并随时设置相应的数值。

PLC作为TCP客户端的实战应用    PART 02  

(1) PLC编程

1.1   创建一个TCPClient的子程序,拖拽一个TCP_CONNECT的库指令,与服务器程序不同的是,这里需要把AcTIve设置为ON,同时IP地址和端口号需要根据上位机实际情况填写,程序段1编写如下图所示:

e6ddcc60-79b4-11ed-8abf-dac502259ad0.png

1.2   拖拽一个TCP_SEND的库指令,对于该指令的每个引脚填写,ConnID为2,Req为触发条件,必须为沿信号,这里为了方便,直接使用1秒的脉冲信号,DataLen及DataPtr为发送的起始字节指针及发送的字节长度,程序段2如下图所示:

e6f98356-79b4-11ed-8abf-dac502259ad0.png

1.3  拖拽一个TCP_RECV的库指令,对于该指令的每个引脚填写,ConnID统一为2,MaxLen为接收的最大程度,DataPtr表示接收字节存放的起始位置,程序段3如下图所示:

e70e3c7e-79b4-11ed-8abf-dac502259ad0.png

1.4   最后需要编译,如果已经编写过服务器程序,这里就不需要分配地址了,直接在MAIN主程序中调用TCPClient这个子程序,并下载到PLC中,PLC编程部分结束。

(2)TCP调试助手测试

如果PLC程序编写没问题,打开一个网络调试助手,设置模式为TCP Server,输入端口号为2000,即可开启服务器。

服务器开启后,PLC端会自动连接服务器,并且每隔一秒发送100个字节数据过来,这100个字节即对应VB500-VB599的值。

e723e704-79b4-11ed-8abf-dac502259ad0.png

(3) 上位机服务器软件开发

e7490bba-79b4-11ed-8abf-dac502259ad0.png

通过与状态图表进行对比,验证可以正常读取和写入PLC数据。

整体总结   PART 03  

后续通过进一步测试,验证PLC可以同时作为服务器和客户端与上位机进行通信。

本次主要针对西门子PLC的开放式TCP通信作了较为详细地阐述,由于篇幅有限,无法将上位机部分的具体编程代码进行分析。


关键字:西门子  PLC 引用地址:西门子200Smart PLC的Socket通信技术

上一篇:步进电机常见的7个参数及特性
下一篇:电机能效标准:什么是IE3、IE4、IE5?

推荐阅读最新更新时间:2024-11-11 16:17

基于PLC控制的太阳能自动跟踪系统
  1 引言   据测试,在太阳能电池板阵列中,相同条件下采用自动跟踪系统发电设备要比固定发电设备的发电量提高35%左右。   所谓太阳能跟踪系统是能让太阳能电池板随时正对太阳,让太阳光的光线随时垂直照射太阳能电池板的动力装置,能显著提高太阳能光伏组件的发电效率。目前市场上所使用的跟踪系统按照驱动装置分为单轴太阳能自动跟踪系统和双轴太阳能自动跟踪系统。   从制手段上系统可分为传感器跟踪和视日运动轨迹跟踪(程序跟踪)。传感器跟踪是利用光电传感器检测太阳光线是否偏离电池板法线,当太阳光线偏离电池板法线时,传感器发出偏差信号,经放大运算后控制执行机构,使跟踪装置从新对准太阳。这种跟踪装置,灵敏度高,但是遇到长时间乌云遮日则会影响运行。视
[嵌入式]
基于PLC和组态软件的汽车安全性能检测系统
一、引言     汽车安全性能检测系统应用于各市的汽车检测线上,可对车辆进行外观、底盘、测滑、轴重、制动、速度表、前大灯、废气、烟度、喇叭声级等项目的安全性能进行检测。汽车安全性能检测线各检测工位的分布情况如图1所示。   图1 汽车安全性能检测系统线检测工位     检测线采用分布式网络控制模式,具有较高的可靠性与并行处理功能.检测速度与检测精度大大提高。检测线系统设三个工位,正常检测采用流水线作业方式,若有工位空闲,可有更多车辆进入空闲工位检测,实现检测系统并列运行、顺序运行和独立运行三种检车方式,最多可三辆车同时在线检测,检测速度不低于20辆/小时。系统共有数字量输入5路,模拟量输入9路,数字量输出7路;需控制的主要过程有
[嵌入式]
海尔、GE、西门子老大共谋互联网时代变革之路
企业必须颠覆传统模式才能创建新的互联网模式,具体来讲则要颠覆商业模式、制造模式和消费模式。 互联网、数字化正在影响经济生活中的方方面面,它们可以让像特斯拉这样的企业形成新兴的商业模式,也会让传统企业如海尔、红领融入互联网,不过,这些都离不开生产制造。未来生产制造、工业生产依旧是全球经济发展的重要引擎。   由工业和信息化部、中国工程院指导,青岛市政府和经济日报社联合主办,主题为“互联网时代工业变革之路”的首届世界互联网工业大会于10月15日-16日在青岛举办。本次大会以“互联网时代工业变革之路”为主题,首次邀请美国工业互联网、德国工业4.0和中国制造2025等战略发起者,以及美国通用电气、思科、罗克韦尔,德国西门子、库卡
[嵌入式]
函数表达式在PLC编程中的应用
1 引言   在对 自动化设备 进行plc编程的过程中,由于各种输入变量、输出变量及中间变量之间的关系错综复杂,开始时往往毫无头绪。如果能够根据设备所要实现的各种功能,列出各种变量之间的函数表达式,就可以清楚的分析它们之间的逻辑关系,继而根据表达式编写 plc 程序,下面以深圳机场的行李输送与安检联动系统为例,介绍如何运用函数表达式来分析各种变量之间的逻辑关系的。   2 行李输送与安检设备联动系统概述   旅客在乘机前需要办理登机手续,机场设有办理旅客登机手续的专用设备-值机柜台,值机柜台与行李输送、安检构成旅客行李安检、输送联动系统,乘客需要托运的行李,都必须通过行李安检系统的安全检查。如图1所示,一般情况下,行李输
[嵌入式]
SIMATIC S7-1500 PLC梯形图编程(3)
【例3】用功能指令编写例2。 步进电机是一种将电脉冲信号转换为电动机旋转角度的执行机构。当步进驱动器接收到一个脉冲,就驱动步进电动机按照设定的方向旋转一个固定的角度(称为步距角)。 因此步进电机是按照固定的角度一步一步转动的。因此可以通过脉冲数量控制步进电机的运行角度,并通过相应的装置,控制运动的过程。 对于四相八拍步进电动机。其控制要求如下。 1、按下启动按钮,定子磁极A通电,ls后A、B同时通电;再过1s,B通电,同时A失电;再过1s,B、C同时通电.....以此类推,其通电过程如图1所示。 2、有2种工作模式。工作模式1时,按下“停止”按钮,完成一个工作循环后,停止工作;工作模式2时,具有锁相功能,当压下“停止”按钮后,
[嵌入式]
SIMATIC S7-1500 <font color='red'>PLC</font>梯形图编程(3)
PLC控制系统使用经验和注意事项
PLC是一种用于工业生产自动化控制的设备,一般不需要采取什么措施,就可以直接在工业环境中使用。 然而,尽管有如上所述的可靠性较高,抗干扰能力较强,但当生产环境过于恶劣,电磁干扰特别强烈,或安装使用不当,就可能造成程序错误或运算错误,从而产生误输入并引起误输出,这将会造成设备的失控和误动作,而不能保证PLC的正常运行。 要提高PLC控制系统可靠性,一方面要求PLC生产厂家提高设备的抗干扰能力。另一方面,要求设计、安装和使用维护中引起高度重视,多方配合才能完善解决问题,有效地增强系统的抗干扰性能。 因此在使用中应注意以下问题 一、工作环境 (1)温度 PLC要求环境温度在0~55oC,安装时不能放在发热量大的元件下面,四周
[嵌入式]
<font color='red'>PLC</font>控制系统使用经验和注意事项
plc编程
PLC编程是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式、模拟式的输入和输出,控制各种类型的机械或生产过程。 可编程序控制器 及其有关设备,都应按易于使 工业控制 系统形成一个整体,易于扩充其功能的原则设计 随着微处理器、计算机和数字通信技术的飞速发展,计算机控制已扩展到了几乎所有的工业领域。现代社会要求制造业对市场需求作出迅速的反应,生产出小批量、多品种、多规格、低成本和高质量的产品,为了满足这一要求,生产设备和自动生产线的控制系统必须具有极高的可靠性和灵活性,PLC编程正是顺应这一要求出现的,它是以
[工业控制]
工业控制器和plc区别在哪
定义: 工业控制器是一种用于控制和监视工业过程的设备。它可以是任何类型的计算机或微控制器,用于执行特定的任务,如数据采集、控制算法和通信。 PLC是一种特殊类型的工业控制器,专门设计用于执行工业自动化任务。它们通常用于控制机器和设备,如输送带、机器人和电机。 功能: 工业控制器的功能可以根据其设计和应用而变化。它们可以执行各种任务,如数据采集、信号处理、控制算法和通信。 PLC的主要功能是控制和监视工业过程。它们可以执行各种任务,如输入/输出处理、控制算法、定时和计数、数据存储和通信。 编程: 工业控制器可以使用各种编程语言进行编程,如C、C++、Python和MATLAB。 PLC使用特定的编程语言,如梯形图(Lad
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved