桂林西门子模块代理商CPU供应商采购
浔之漫智控技术(上海)有限公司是西门子授权PLC模块供应商
很多从日系PLC或者200PLC过来的人,很不习惯于S7 1200 或者TIA PORTAL 里面的一些术语,比如OB,DB,FC,FB等等,其实这些术语也包含于S7 300,400 ,1500等,所以讲解的内容,理论上也适应于这些PLC。虽然我没有玩过这些东西,但是TIA PORTAL适合于西门子全系列PLC,很多概念性的东西都是一致的。S7 1200的功能强大正式基于拥有各种类型的block和多种变量类型。
我会用不一样观点来讲述PLC编程,相比于很多普通的PLC教程,你会发现很多有趣的地方。
S7 1200 由以下几类基本元素组成:
OB:组织块,英文名Organization block。组织块是CPU系统和用户程序之间的接口,可以在CPU上电启动时调用,也可以循环调用,也可以在PLC发生错误时候调用。
DB:数据块,英文名Data block。从字面含义便知主要用于储存用户数据,比如模拟量转换数据,相当于200里面的V区,欧姆龙PLC的W区。
FC:函数,英文名Function。我们常常在FC函数中写一些需要重复执行的代码,可以在程序不同地方调用,可以被OB调用,也可以被FC调用。使用FC可以简化我们需要重复执行的任务,提高代码的运行效率。FC类似于200的子程序。
FB:FC+DB组合,意思是含有DB块的FC函数,与FC的区别是当函数调用结束后,通过Static变量仍然可以保留数值,经常用于调用间的数据共享。
OB组织块
当我们新建一个程序时,系统会自动建立一个Main[OB1]程序,该程序会在PLC的每个扫描周期被调用。Main程序和200里面的主程序,是一个同样的概念。也类似于C里面的Main ,即为函数点,我们可以在Main程序里面调用各种函数和块。下面的图是在程序中调用一个FC和FB,然后在FC中调用另外一个FC,形成嵌套调用。
注:、、、是别名,方便我们记忆和理解,真正的地址在[.....]中,如OB1,FC2,FC1,FB1等等。
图1 Main程序
图2 Main调用结构
图1显示了Main程序具体内容,图2显示了Main程序的调用结构。图中很多元素的概念,我们暂时不需要了解,但是可以看到一些整体概念,Mian程序包含程序段1(NW1)和程序段2(NW2),在Main的调用结构中包含了3个元素test、调用FB和调用FC。其实应该是4个,还有一个嵌套在中,点击左侧箭头,出现如下图所示:
图3 FC嵌套调用
图4 OB分类
我们来分析上图中的OB类型。OB块主要用于程序循环、启动、延时中断、循环中断、硬件中断、HSC中断、诊断错误和时间错误事件。OB块还有两个属性是编号和**级,**级越高,中断级别越高。在同样的**级别,OB编号越小,越**执行。从图1中,我们看到Main程序的地址在OB1,是一个循环运行程序,**级为1较低。时间错误事件的**级,当发生该事件时,会暂停执行Main程序,**执行时间错误事件OB块。程序循环OB类块的编号属性为“1;>=123”,意为我们可以创建多个类似OB块。因为新建程序默认OB编号为1,假设我们要创立该事件类型OB块,那么默认编号为123起,同时OB1的执行要**于OB123。诊断错误事件OB块和时间错误OB块只有一个。
13 6ES7314-6CG03-0AB0
6ES7314-6CH04-0AB0 CPU314C-2DP 96K内存 24DI/16DO / 4AI/2AO
6ES7314-6EH04-0AB0 CPU314C-2PN/DP 192K内存/24DI/16DO/ 4AI/2AO
6ES7 314-6CG03-9AM0 CPU314C-2DP 96K内存 24DI/16DO / 4AI/2AO组合件(6ES7 314-6CG03-0AB0+6ES7 392-1AM00-0AA0*2)
14 6ES7315-2AG10-0AB0 CPU315-2DP, 128K内存
15 6ES7315-2AH14-0AB0 CPU315-2DP, 256K内存
16 6ES7315-2EH13-0AB0
6ES7315-2EH14-0AB0 CPU315-2 PN/DP, 256K内存
17 6ES7317-2AJ10-0AB0
6ES7317-2AK14-0AB0 CPU317-2DP,512K内存
18 6ES7317-2EK13-0AB0
6ES7317-2EK14-0AB0 CPU317-2 PN/DP,1MB内存
19 6ES7318-3EL00-0AB0
6ES7318-3EL01-0AB0 CPU319-3PN/DP,1.4M内存
内存卡
20 6ES7953-8LF30-0AA0 SIMATIC Micro内存卡 64kByte(MMC)
6ES7953-8LF31-0AA0
21 6ES7953-8LG30-0AA0 SIMATIC Micro内存卡128KByte(MMC)
6ES7953-8LG31-0AA0
22 6ES7953-8LJ30-0AA0 SIMATIC Micro内存卡512KByte(MMC)
6ES7953-8LJ31-0AA0
23 6ES7 953-8LL30-0AA0 SIMATIC Micro内存卡2MByte(MMC)
6ES7953-8LL31-0AA0
24 6ES7953-8LM30-0AA0 SIMATIC Micro内存卡4MByte(MMC)
6ES7953-8LM31-0AA0
25 6ES7953-8LP30-0AA0 SIMATIC Micro内存卡8MByte(MMC)
6ES7953-8LP31-0AA0
存储方面的区别。S7-200的程序存储器和数据存储器的大小是固定不变的,而S7-1200的程序存储器和数据存储器则是浮动的。S7-1200CPU的符号表和注释可以保存在CPU中,可在线获取。在S7-1200中利用符号化存取,可以化分配数据块所占的存储区。在保持存储区方面,S7-200仅有数据区可以设置为保持,而S7-1200多可设置2048个字节的保持区,可以对数据块中的离散变量设置保持性。在存储卡容量方面,S7-1200的存储卡可到24兆字节,对于S7-200和S7-1200存储卡都是可选项,可以存放的内容相同。另外S7-1200的存储卡还将用来实现存储区扩展,程序分配及固件升级等功能。
存储的区别
程序结构的不同。S7-200由主程序、子程序、中断子程序、及数据区V区等,而S7-1200有OB块、 SB块、FC块以及数据块等。S7-200调用子程序嵌套深度为8,所有程序块共用一个通用数据块,而S7-1200像S7-300一样具有FC、FB和OB块等,程序结构高度模块化,并且可以重用,嵌套深度为16。在S7-200中将事件分配给中断,中断事件触发相应的子程序。而在S7-1200中则通过组织块分配事件。
程序结构的区别
启动模式设置
S7-1200 启动模式可以在“CPU 属性-常规-启动” 进行设置。如下图 1 所示:
图 1. CPU启动选项设置
①“上电后启动”:定义了CPU 上电后的启动特性,共有以下三个选项,用户可根据项目的特点及性来选择,默认选项为“暖启动-断电前的操作模式”:
“不重新启动(保持为STOP 模式)”:CPU 上电后直接进入STOP 模式;
“暖启动-RUN模式”:CPU 上电后直接进入RUN模式;
“暖启动-断电前的操作模式”:选择该项后,CPU上电后将按照断电前该CPU 的RUN模式启动,即断电前CPU处于运行模式,则上电后 CPU 依然进入RUN模式;如果断电前CPU 处于STOP状态,则上电后CPU进入STOP模式。
如果在发生掉电或故障时,CPU 处于 STOP 模式,则 CPU 将在上电时进入 STOP 模式并保持 STOP 模式,直至收到进入 RUN 模式的命令;
如果在发生掉电或故障时,CPU 处于 RUN 模式,则在未检测到可禁止 CPU 进入 RUN 模式的条件下,CPU 将在下次上电时进入 RUN 模式。
②“比较预设与实际组态”:定义了 S7-1200 PLC站的实际组态与当前组态不匹配时的 CPU 启动特性:
“仅在兼容时,才启动CPU”:所组态的模块与实际模块匹配(兼容)时,才启动CPU。
“即便不匹配,也启动CPU”:所组态的模块与实际模块不匹配(不兼容)时,也启动CPU。
注意:
如果选择了"即便不匹配,也启动CPU",此时的用户程序无常运行,必须采取相应措施!所以要慎重选择该项。
③ “组态时间”:在 CPU 启动过程中,为集中式 I/O 和分布式 I/O分配参数的时间,包括为 CM 和 CP 提供电压和通信参数的时间。如果在设置的“组态时间”内完成了集中式 I/O 和分布式 I/O的参数分配,则CPU立刻启动;如果在设置的“组态时间”内,集中式 I/O 和分布式 I/O未完成参数分配,则 CPU 将切换到 RUN 模式,但不会启动集中式 I/O 和分布式 I/O;
④ “OB应该可中断”:“OB应该可中断”后,在OB 运行时,*高**级的中断可以中断当前OB,在此OB 处理完后,会继续处理被中断的 OB。如果不“OB应该可中断”,则**级大于2的任何中断只可以中断循环OB,但**级为2~25的OB不可被*高**级的OB 中断。
启动时 CPU 执行的操作
启动特性:
在暖启动期间,所有非保持性位存储器内容都将并且非保持性数据块内容将复位为来自装载存储器的起始值。将保留保持性位存储器和保持性 DB 中的内容。
不管选择哪种启动模式,已编写的所有启动 OB 都会执行。
不执行任何基于时间的程序。
中断控制的程序的执行于:OB 82(诊断中断)
禁用模块上的输出。
不*新过程映像;可以对输入进行直接 I/O 访问。
如下图 2 所示:
图 2. 启动时 CPU 执行的操作
关于 启动 OB 的详细说明, 请参考以下文档:
S7-1200 启动(Start up)组织块
常见问题:
1.
哪些情况会导致 S7-1200 CPU 无法启动?
以下的情况会导致 S7-1200 CPU 断电后再上电无法启动:
检测到的某些错误会阻止 CPU 进入 RUN 模式;
在“CPU 属性-常规-启动” 设置为不重新启动(保持为 STOP 模式);
暖启动 - 断电前的模式:CPU 组态为“暖启动 - 断电前的模式”,且在发生掉电或故障时,CPU 处于 STOP 模式,则 CPU 将在上电时进入 STOP 模式并保持 STOP 模式;
在 CPU 设备组态的属性里选择了“允许通过用户程序重新组态设备”。而 WRREC 指令在启动 OB 中传送完控制数据记录后组态控制才会生效。如果已启用组态控制但 CPU 不具有控制数据记录,则在退出 STARTUP 模式时会转到 STOP 模式。
具体请参考:
组态控制功能
2. 为什么CPU断电后,再上电CPU没有报任何错误,但CPU却运行不起来?
答:原因是CPU没有硬件开关用于启停控制,CPU上电后的启停由CPU属性中的“启动”选项来决定(如图1所示)。其默认设置为“暖启动-断电前的操作模式”,此时如果是断电前CPU因故障停止,那么再上电后即使没有故障,CPU也会延电前的状态,保持STOP 模式。或者设置成“不重新启动”,则CPU 上电后直接进入STOP 模式。如果在以上两种模式下,CPU无法启动,需要通过博途软件在线功能启动CPU。
所以必须将启动选项设置为“暖启动-RUN模式”,才能保证在没有错误的情况下,CPU上电后直接进入RUN模式。
3.
我们学习了
西门子S7-1200是一款紧凑型、模块化的PLC,可完成简单逻辑控制、逻辑控制、HMI 和网络通信等任务。对于需要网络通信功能和单屏或多屏HMI的自动化系统,易于设计和实施。具有支持小型运动控制系统、过程控制系统的应用功能。
SIMATIC S7-1200 具有用于进行计算和测量、闭环回路控制和运动控制的集成技术,是一个功能非常强大的系统,可以实现多种类型的自动化任务。
SIMATIC S7-1200 PLC 与新型 SIMATIC HMI Basic Panel 的匹配确保自动化任务特别、易于开发和调试
一. S7-1200输入输出接线图
CPU 1211C 接线图
CPU 1211C AC/DC/继电器 (6ES7 211-1BE40-0XB0)
① 24 VDC 传感器电源
② 对于漏型输入将负载连接到“-”端(如图示);对于源型输入将负载连接到“+”端
CPU 1211C DC/DC/继电器 (6ES7 211-1HE40-0XB0)
① 24 VDC 传感器电源
② 对于漏型输入将负载连接到“-”端(如图示);对于源型输入将负载连接到“+”端
CPU 1211C DC/DC/DC (6ES7 211-1AE40-0XB0)
① 24 VDC 传感器电源
② 对于漏型输入将负载连接到“-”端(如图示);对于源型输入将负载连接到“+”端
CPU 1212C 接线图
CPU 1212C AC/DC/继电器 (6ES7 212-1BE40-0XB0)
① 24 VDC 传感器电源
② 对于漏型输入将负载连接到“-”端(如图示);对于源型输入将负载连接到“+”端
CPU 1212C DC/DC/继电器 (6ES7 212-1HE40-0XB0)
① 24 VDC 传感器电源
② 对于漏型输入将负载连接到“-”端(如图示);对于源型输入将负载连接到“+”端
CPU 1212C DC/DC/DC (6ES7 212-1AE40-0XB0)
① 24 VDC 传感器电源
② 对于漏型输入将负载连接到“-”端(如图示);对于源型输入将负载连接到“+”端
CPU 1214C 接线图
CPU 1214C AC/DC/继电器 (6ES7 214-1BG40-0XB0)
① 24 VDC 传感器电源
② 对于漏型输入将负载连接到“-”端(如图示);对于源型输入将负载连接到“+”端
CPU 1214C DC/DC/继电器 (6ES7 214-1HG40-0XB0)
① 24 VDC 传感器电源
② 对于漏型输入将负载连接到“-”端(如图示);对于源型输入将负载连接到“+”端
CPU 1214C DC/DC/DC (6ES7 214-1AG40-0XB0)
① 24 VDC 传感器电源
② 对于漏型输入将负载连接到“-”端(如图示);对于源型输入将负载连接到“+”端
CPU 1215C 接线图
CPU 1215C AC/DC/继电器 (6ES7 215-1BG40-0XB0)
① 24 VDC 传感器电源
② 对于漏型输入将负载连接到“-”端(如图示);对于源型输入将负载连接到“+”端
西门子触摸屏供应商,西门子一级供应商,西门子中国授权总供应
----浔之漫智控技术(上海)有限公司
司经销合信/CO-TRUST科思创西门子PLC;S7-200S7-300 S7-400 S7-1200 触摸屏,变频器,6FC,6SNS120 V10 V60 V80伺服数控备件:原装进口电机,电线,电缆,希望能跟您有更多的合作机会
PLC需要使用的信号转换模块,将这种标准的电压或电流信号,按照比例转换成CPU能处理的数值,这种转换称为模数转换,实现这种转换的模块被称为模拟量输入模块。
西门子S7-1200系列PLC有三种模拟量输入模块:
1SM1231 AI4x13bit;
2SM1231 AI8x13bit;
③SM1231AI4×16bit;
名称中的AI是英文“AnalogInput"的缩写,表示模拟量输入;后面的数字表示通道的数量,“4”表示有4个通道,
“8”表示有8个通道;
“13bit”表示模块的分辨率是13位(12位数值+1位符号),“16bit”表示模块的分辨率为16位;分辨率越大,模数转换后的数值越接近实际值;
补充说明一点:
西门子S7-1200的CPU模块本身也集成了模拟量输入通道,不过仅支持0~10V的电压信号;另外,工业上温度的采集经常使用热电偶和热电阻,这两种传感器输出的不是电压或电流信号,我们将在后续介绍。
模拟量输出模块的作用是将区间范围内的某个数值,转换成电压或电流信号向外输出。换句话说,模拟量输出模块是向外输出电压或电流信号的模块。
模拟量模块输出的电压或电流都有一个标准的量程范围。常见的电压信号量程有0~10V,±10V等;常见的电流信号量程有0~20mA和4~20mA。
工业上常见的比例阀通常使用模拟量信号控制。
假设某比例阀接收4~20mA的电流信号,我们可以使用模拟量输出模块(比如西门子S7-1200的SM 1232 AQ2x14位),将其输出通道连接到该比例阀。
当模块输出4mA电流时,比例阀的开度为0;当模块输出20mA电流时,比例阀的开度为;那么当模块输出4~20mA的中间值(12mA)时,比例阀的开度为50%。在PLC程序中,通过输出一个百分比的数值,能控制比例阀的开度,这是模拟量输出模块的典型应用。
名称中的“AQ”是英文
“Analog Output”的缩写,表示模拟量输出;
“2”表示有2路通道;
“14位”表示它的分辨率为14位;这个模块可以输出±10V的电压信号、0~20mA的电流信号或者4~20mA的电流信号中的一种,可在组态中进行选择。
比如S7-1200系列PLC有两种热电偶模块,SM 1231
AI4x16bit TC和SM 1231AI8x16bit TC。两者的分辨率都是16位(15位数值+1位符号),前者有4组输入通道,后者有8组输入通道。热电偶的两种金属一种是正,另一种是负。接线时将热电偶的正负分别连接到热电偶模块通道的正负即可。
西门子S7-1200系列PLC提供两种热电阻模块:
SM 1231 AI 4xRTDx16bitSM 1231 AI 8xRTDx16bit名称中的“SM”是“SignalModule"的缩写,即“信号模块”,“12”是指S7-1200系列产品,“31”是序列号,与后面的
“AI”表示相同的意思,即“模拟量输入;后面的数字表示通道的数量,
“4”表示有“4”个通道,
“8”表示有“8”个通道;
“RTD”表示可连接RTD传感器;
“16bit”表示模块的分辨率为16位;
SM1231 RTD模块的测量类型可以是“电阻”或“热电阻”。电阻→RTD传感器的阻值,传感器的量程可以在组态中设置,满量程数值为27648;热电阻一温度值x10,单位可以是C或F,组态中可选择。比如:假设设置的温度单位为摄氏度,测量值为262,则实际温度为26.2℃。
SM 1231 RTD模块支持2线制、3线制和4线制的热电阻传感器。实际应用中2线制传感器导致的测量误差较大,建议采用3线制或4线制传感器。S7-1200模块
SIMATIC S7-1200是一款紧凑型、模块化的PLC,可完成简单逻辑控制、逻辑控制、HMI 和网络通信等任务
6XV1830-0EH10 网络总线
6ES7972-0BB12-0XA0 网络总线连结器,带编程口,垂直电缆出线
6ES7972-0BA12-0XA0 网络总线连结器,不带编程口,垂直电缆出线
6ES7972-0BA41-0XA0 网络总线连结器,不带编程口,35度垂直电缆出线
6ES7972-0BB41-0XA0 网络总线连结器,带编程口,35度垂直电缆出线
图5 添加OB新块
图6 手动选择创建编号
图5 添加OB新块界面,我们可以看到,在红色矩形框处,OB编号数值为123,我们选择的创建方式为自动。如果你想起用别的编号,可以选择手动方式,同时可以选择创建OB块采用的语言。大家不妨自己试一试哦。
这里讲解几个常用的OB类型块使用,其他类型OB块使用,大家可以翻阅系统编程手册。
程序循环事件OB块(program cycle):该块主要用于执行循环运行的程序,一般一个程序中创建一个便可以,是默认的Main程序(OB1),我们可以通过调用FC和FB来实现其他功能。系统CPU每个扫描周期都会执行该类型OB块。
启动事件OB块(Startup):该块主要用于初始化变量,当PLC断电重启或者CPU从STOP切换为RUN时候执行,往后不再运行,也是只运行一次。我们新建一个DB1块,添加两个,设置初始值,如下图所示:
图7 添加DB块变量
然后新建一个Startup事件OB块,写如下程序(SCL语言):
图8 Startup事件OB块程序
我们可以看到该类型OB块编号为100,如果再建一个该类型OB块,编号必须>=123。然后我们下载程序,这里顺便提一下下载选项,如下图所示:
图9 下载选项
如果是初次下载,选择“硬件和软件(仅更改)”。如果不是初次,可以选择你修改的部分,这样会提高下载速度。
图10 程序运行结果
循环中断事件OB块(Cyclic interrupt):常常用于需要定时执行的任务,比如我们需要1秒钟采样50个模拟值,我们可以把循环时间设置为20毫秒。可能会有人问,为什么不采用普通定时器每隔20毫秒采样一次呢?因为普通定时器会受到CPU扫描周期的影响。在PID程序中,我们需要采用循环中断事件来调整计算PID输出。
图11 添加循环中断事件OB块
CPU
6ES7 211-0AA23-0XB0 CPU221 DC/DC/DC,6输入/4输出
6ES7 211-0BA23-0XB0 CPU221 继电器输出,6输入/4输出
6ES7 212-1AB23-0XB8 CPU222 DC/DC/DC,8输入/6输出
6ES7 212-1BB23-0XB8 CPU222 继电器输出,8输入/6输出
6ES7 214-1AD23-0XB8 CPU224 DC/DC/DC,14输入/10输出
6ES7 214-1BD23-0XB8 CPU224 继电器输出,14输入/10输出
6ES7 214-2AD23-0XB8 CPU224XP DC/DC/DC,14DI/10DO,2AI/1AO(PNP)
6ES7 214-2AS23-0XB8 CPU224XPsi DC/DC/DC,14DI/10DO,2AI/1AO(NPN)
6ES7 214-2BD23-0XB8 CPU224XP 继电器输出,14DI/10DO,2AI/1AO
6ES7 216-2AD23-0XB8 CPU226 DC/DC/DC,24输入/16输出
6ES7 216-2BD23-0XB8 CPU226 继电器输出,24输入/16输出
西门子PLC模块-西门子PLC主机-西门子PLC控制器-西门子PLCS7200-西门子PLCS7-300-西门子plcs7-400-西门子PLCS71200-西门子PLCS71500 西门子PLC扩展模块-西门子PLC通讯模块-西门子PLC定位模块-西门子PLC数字量模块-西门子PLC输出输入模块
西门子PLC模块供应商 西门子CPU模块供应商,西门子PLC模块 ,西门子中国供应商 西门子PLC供应商 西门子模块供应商 西门子供应商 西门子PLC总供应
桂林西门子模块代理商CPU供应商采购