周报140期 关于PLC三十问解答
关注“ 技成微课堂 ”,一起涨知识~
私信回复:64,领64本西门子电子书!
1.急停按钮为什么在PLC程序里是写成开点?
答:因为程序里的急停信号输入点接的实际急停开关的常闭触点。为安全起见,现场的急停按钮都是接常闭触点的。
2.西门子1200PLC模拟量输出有0到正负10V的吗?
答:组态好模拟量模块,在组态画面选模块属性,属性里面的量程范围选土10∨就可以了。
3.S7_JOB.S7S用什么软件可以打开?
答:单独的文件是打不开的,配合其他项目文件用STEP7软件打开。
4.mcgs软件可以在线控制PLC吗?为什么通讯失败?
答:肯定可以。没有实际的触摸屏下载程序时要点击模拟运行,电脑的IP地址,要和PLC的同一网段。
5.请问一下伺服电机滑台原点不停机是什么原因呢?
答:原因很多,首先有无设置好,其次原点传感嚣有无问题。
6.DB2.DD4在哪里找?
答:CTRL+F可以搜索,也可以进入DB2的数据块,查看符号地址再继续搜索。
7.数据块里的数据能修改吗?
答:初始值是可以修改的。
8.传感器接PLC,宗正蓝负黑信号,接了PLC灯不亮什么原因?
答:传感器是有极性的,分NPN和PNP,极性和PLC对了才亮灯。
9.200的PLC,可以用200SMART的软件打开连接不?
答:可以打开,但连接不了。
10.在测试中怎样强制打开一个原件?
答:一般是可以的,看你用的什么编程软件,不同的软件有不同的方法。
11.双整数是什么意思呢?
答:相对于整数来说的,它的数值范围更大,占32个位,整数占16个位,所以叫双整数。
12.硬件组态了一个站点,但是和变频器组态有冲突怎么办?
答:地址重复了改其中一个站点的地址。
13.DB2.DBX0.0这个数据块请问有说明吗?
答:DB2.DBX0.0就表示DB2数据块里的DBB0这个字节的第0位,也就是最低位。再比如DB2.DBX5.2表示DB2数据块里的DBB5这个字节的第2位。
14.两边设备通讯,串口参数是不是都是一样的呢?
答:必须要一样。波特率,数据位,奇偶校验必须一致。
15.背景DB和全局DB有什么区别?
答:全局DB是整个程序都能用,背景DB是创建FB时,FB自己存储数据的数据块。
16.博图V13有没有像16一样可以直接在线硬件检测,网络中的PN设备?
答:有的,在项目树里点在线访问,再点更新可访问的设备。
17.用S7-200 224XP和西门子触摸屏上位机软件仿真运行,PLC该怎样设置?
答:PLC不用设置什么,在触摸屏连接那儿选好CPU就行了。
18.博途里面数据块中的变量值,修改后为什么在程序执行时没有改变,还是原来的值?
答:程序里用到了,被程序的值覆盖了。
19.程序输入点I0.0为什么下载进PLC里面会自动给信号,不用给外部输入就直接自己运行了?
答:如果I0.0没有外接常闭触点的按钮,就是被强制了。
20.200SMART做485通讯报错818B?
答:818B是本地地址指针错误,你的地址没有指明范围有多大(多少个WORD)。
21.怎么理解停止或急停按钮实际接的时常闭触点而程序里却用的时常开触点?
答:电流从外面的常闭触点接到输入点上,那么程序里的常开触点就会接通,常闭触点会断开,所以启动程序里的停止急停必须用常开触点。
22.三菱Q系列软元件F是什么意思 ?
答:F是内部寄存器,一般用于报警。
23.编码器的线被蹭断了,现在是对接的,老报这个驱动器错误417?
答:编码器的线断了要换线,直接对接是不行的。
24.三相输入三相输出的变频器,负载是电动机,当交换输入三相电的相序时,输出相序会不会变化,会不会造成电动机反转?只交换任意两相电的相序?
答:那是电机调换相序对掉才会换向,和变频器的电源没有太大关系。
25.S7-200下载程序后,开关拨到RUN能运行,但是在通过软件设置为RUN模式,程序不运行,是怎么回事?
答:这个要拨码开关也要打到RUN。
26.什么是差分脉冲了?西门子Q点输出的脉冲都是24v吧?
答:差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法(单端信号),差分传输在这两根线上都传输信号,这两个信号的振幅相等,相位相反。在这两根线上的传输的信号就是差分信号。相对单端信号而言,差分传输的共模抑制能力较强,抗干扰能力强。西门子的晶体管型的输出,基本上Q点都是输出24v,也会有专门的差分输出模块。
27.西门子TP177B触摸屏用哪个软件可以编程?
答:WinCC flexible 2008
28.CAD的教学视频中的Auto CAD2018软件是怎么设置成电气版本的吗?
答:这是两个软件,不能设置。
29.西门子CR40和1500以太网通讯能实现吗?
答:CR40是有以太网口的,可以使用以太网通讯。
30. simatic manager 这个是西门子的什么软件?
答:就是STEP7软件的名字,可以私信小编下载。
文章来源:技成辅导员!
私信回复:64,领64本西门子电子书!
SCL与STL的区别是什么?SCL常见问题及解决办法
一、SCL 与 STL
SCL(Structured Control Language)语言,也就是结构化控制语言,它其实和IEC标准制定的ST语言是一样的。S7-SCL 可以编译成 STL, 虽然其代码量相对于 STL 编程有所增加,但我们更关心的是程序结构和程序的总体效率。类似于计算机行业的发展,汇编语言已经被舍弃,取而代之的是 C/C++等高级语言。S7-SCL 对工程设计人员要求较高,需要其具有一定的计算机高级语言的知识和编程技巧。
STL是STEP7时代推出的语言,它不是STRUCT TEXT LANGUAGE的缩写,所以它和ST语言完全没关系。STL语言是一种汇编语言,是面向机器底层的语言,可以直接操作寄存器,可读性不强,和80C51单片机的机器语言是一个层面。所以它是一种低级语言,而ST和SCL都是中高级语言。
二、S7-SCL 常见问题
1)如何规范地的开发一个 S7-SCL 程序?
解答:开发一个 S7-SCL 程序,应当遵循如下流程:
• 规划需要的块类型,即程序的整体结构;
• 规划子任务(FB,FC 等等);
• 定义各个子任务的之间输入/输出接口;
• 定义各个子任务在原文件中的顺序及调用关系;
• 定义符号表
• 编译检查;
•下载调试。
2)S7-SCL 支持哪些 STEP7 块,与其它语言有什么关系?
解答:S7-SCL 支持如下
STEP7 的块:OB,FC,FB,DB,UDT。
在 S7 程序中,S7-SCL 块可以与其它STEP7 编程语言生成的块互相调用。
S7-SCL 可以被编译成 STL, S7-SCL 生成的块也可以作为库文件被其它语言引用。
由于 S7-SCL 程序由 ASCII 文本构成,所以它非常容易被导入或导出。
3)为什么双击打开 S7-SCL 类型的程序后,显示的格式却是 STL 格式?
解答:S7-SCL 程序编译后生成的执行代码实际上为 STL 格式,如下图中的 FC1, 虽然其标示为 SCL格式,但如果用户将 Source 目录中的 FC1 的源文件删除后,再双击打开 FC1 后,显示的将为 STL格式。
【文末免费领取学习电工/PLC学习资料】
【文末免费领取学习电工/PLC学习资料】
【文末免费领取学习电工/PLC学习资料】
4)什么是 OK Flag?
解答:在 S7-SCL 程序中,OK 是一个布尔类型的特殊本地变量。它用来显示块执行是否正确。
OK 标志的使用与 STL 编程中对于 FC/FB 的 ENO 处理(STL 是用状态字的 BR 位来保存状态)非常相似。
在程序的开始,可以将 OK 标志赋值为 TURE,如果程序执行有错误(例如 0 作为除数),则当程序退出时,用户通过程序将 OK 标志改写为 FALSE,此数值将被存储在输出参数 ENO 当中。
OK 标志是一个系统变量,不需要定义,如果用户希望在程序中使用此标志,可以在 S7-SCL编程菜单 Options>Customize>Compiler 中,应当选择 Set OK flag.项。否则 ENO 将无法被评估。
OK 标志使用的例子:
OK:= TRUE;
Division:= 1 / IN;
IF OK THEN // 除法操作正常;
// 此处可以添加在除法操作正常情况下,其它的用户程序ELSE //除法操作不正常;
// :END_IF;
5)在 STL 中可以读取一个组织块的信息 (例如 OB1 中的循环时间),在 S7-SCL 中是否存在同样的可能?
解答:STEP7 中的任意 OB 块在生成之后,其内部都自动生成一些特有的临时变量,例如 OB1 中的变量OB1_PREV_CYCLE 即为CPU 上个扫描周期所用的时间。在 S7-SCL 编辑器中,通过“Insert> Block Template > OB”创建一个 OB 模板。
在缺省情况下,此模板的临时变量区域将创建一个ARRAY OF BYTE 类型的临时变量。此区域与 OB 块的临时变量区域是相对应的,但由于没有变量名称标识,并且数据类型也不相同,所以用户使用起来非常不方便。如果用户想要使用 S7-SCL格式的 OB 块内的特有变量,请按下列步骤进行:
• 在路径 STEP7 的安装路径 \Step7\S7DATA\S7wiz 下,包含所有 OB 块的 STL 格式模板,可以使用写字板打开这些模板 (例如 OB31.awl), 并复制相应变量定义。
• 创建一个新的 S7-SCL 源文件并插入刚才复制的变量定义。
• 调整 S7-SCL 源文件中的语法结构;
• 在这个程序的开始部分, 可以设置 "Title" 和"Version" , 例如 Title=' ' 和 Version= '0.1';
• 在 BEGIN 语句后面插入一个分号,至此,即完成格式修改。另外,也可以打开本文中的 S7-SCL 例子目录中的 OB_Templ 项目,其中包括了 44 个 S7-SCL 源文件格式的组织块。
6)如何理解 FC/SFC 的输出参数 RET_VAL(返回值)?
解答:对于此问题,如果读者对 PASCAL 语言或者高级编程语言非常熟悉,可能此问题就非常容易解释。许多 SFC (系统功能) 都有输出参数 RET_VAL (返回值) ,它提供一个可供评估的错误代码。STEP 7 在线帮助中提供有更多关于系统功能和输出参数 RET_VAL 的信息。
通过在 SIMATIC管理器中选中 SFC 然后按“F1”键可以获取相关的在线帮助信息。同样,一个 FC 也可以返回一个结果,下面给出了一些例子,说明了如何在 S7-SCL 中调用带有返回值 (RET_VAL) 的功能 (FC 或 SFC)。
定义 FC1, 函数类型为 INT (返回值)
调用 FC1,得到返回值:
调用一个系统功能 (SFC24):当调用系统功能 SFC 24 “TEST_DB”(测试数据块) 时,得到关于 CPU主内存中一个数据块的信息。SFC24 确定指定 DB 的数据字节数,并检查该 DB 是否受到写保护。选定 DB 所包含的数据字节数通过参数“DB_LENGTH”输出,参数“WRITE_PROT”包含关于选定 DB 的写保护 ID 的信息 (FALSE 表示没有写保护)。
7)在 S7-SCL 程序中,PLC 中的地址标识与 STL/LAD 中的地址标识有何区别,使用中有何注意事项?
解答:在 S7-SCL 程序中,PLC 中的地址标识与 STL/LAD 中的地址标识基本相同,方便了编程人员快速掌握 S7-SCL 语言。下图为 PLC 中的 S7-SCL 程序地址标识格式,图中一些格式有些特殊,实际上,下面的格式在 S7-SCL 中都是正确的。
DB1.D0.0:=DB1.DBX0.1;
DB1.DB1:=DB1.DBB1;
DB1.DW2:=DB1.DBW2;
DB1.DD4:=DB1.DBD4;
QX0.0:=Q0.0;
IX0.0:=I0.0;
MX0.0:=M0.0;
所以说,在一般情况下,编程人员依旧可以 STL 的标识方式用于 S7-SCL。注意:如果数据块编号及地址都使用了间接寻址方式,则必须使用 S7-SCL特定的标识方式,例如如下语句:
STATUS_1:=WORD_TO_BLOCK(INDEX).DW [COUNTER]; (此格式正确)
STATUS_1:=WORD_TO_BLOCK(INDEX).DBW [COUNTER] ; (此格式错误)
上图为S7-SCL 中的 PLC 地址格式。x 可以为 0 至 65535 之间的数字(绝对地址),y 可以为 0 至 7 之间的数字(位地址),对于其它 FB,OB,DB, T,C 等等的标识格式,S7-SCL 格式基本与 STL 格式相同,此处不做说明。
8)为什么用户人工输入的程序在编译时经常提示语法错误?
解答:S7-SCL 程序和所有的高级语言一样,有着自己特定的语法,而很多编程人员容易在人工输入程序时忽视语法格式,这样就造成编译错误。因此强烈建议编程人员使用 S7-SCL 的模板向导。在菜单 Insert 中,提供了 Block Call, Block Template, Control Structure, 三个向导,用户可以通过使用此向导,提高输入效率。例如在下图中指出了两个常见错误,用户如果使用向导,就不容易出错误:
【文末免费领取学习电工/PLC学习资料】
【文末免费领取学习电工/PLC学习资料】
【文末免费领取学习电工/PLC学习资料】
9)S7-SCL 程序中如何使用多重背景?
解答:S7-SCL 程序中可以使用多重背景,下面的程序列出了正确格式,声明完成后,在程序中即可调用:
Supply1 : FB10; //将 Supply1 定义为 FB10 类型;
Supply2,Supply3,Supply4 : FB100;
//将 Supply2,Supply3,Supply4 定义为 FB100 类型。
10)如何在 S7-SCL 程序中实现数据块间接寻址?
解答:S7-SCL 程序中对数据块间接寻址提供了良好的支持,编程也很简单。
<1>下面的程序列出了正确格式:
STATUS_1:= DB11.DW[COUNTER]; //字节间接寻址;
STATUS_2:= DB12.DX[WNO, BITNO]; //位间接寻址,用户改变 WNO,BITNO 数值即可;
STATUS_1:= Database1.DW[COUNTER];// Database1 为 DB 类型的本地变量;
STATUS_2:= Database2.DX[WNO, BITNO];
STATUS_1:=WORD_TO_BLOCK_DB(INDEX).DW[COUNTER];
//INDEX 被定义为 BLOCK_DB 数据类型,COUNTER 为整数数据类型,这样可以实现数据块编号,字节地址同时间接寻址,此功能是一种功能很强间接寻址方式。
<2>以下是数据块直接寻址方式格式:
STATUSBYTE :=DB101.DB10; //字节直接寻址格式;
STATUS_3 :=DB30.D1.1; //位直接寻址格式;
MEASVAL :=DB25.DW20; //字直接寻址格式;
STATUSBYTE :=Status_data.DB10;
STATUS_3:="New data ".D1.1;
MEASVAL :=Measdata.DW20;
STATUS_1 :=WORD_TO_BLOCK_DB (INDEX).DW10;
11)在 S7-SCL 程序中调用 FC/FB 与在 STL/LAD 中调用 FB/FC 有何区别?
解答:在 STL/LAD 程序中调用 FB 可以不把参数填写完整,但在 S7-SCL 程序中调用 FB 时,必须把FB参数填写完整;对于FC的调用S7-SCL与STL/LAD区别不大。强烈建议编程人员使用S7-SCL的模板向导调用 FB。
12)为了将 S7-SCL 中的位数据类型(BYTE, WORD 或 DWORD)转换到“REAL”数据类型时,需要使用哪种数据类型转换程序?
解答:为了将 S7-SCL 中的位数据类型(BYTE, WORD 或 DWORD)转换到数字数据类型“REAL”时,需要使用以下指令:
•从 BYTE 到 REAL:“DINT_TO_REAL(DWORD_TO_DINT(BYTE_TO_DWORD(value)) ”
• 从 WORD 到 REAL:“DINT_TO_REAL(DWORD_TO_DINT(WORD_TO_DWORD(value))”
• 从 DWORD 到 REAL:“DINT_TO_REAL(DWORD_TO_DINT(value)) ”
注意事项:用户在将 BYTE, WORD 或 DWORD 数据类型转换到 “REAL” 数据类型时,S7-SCL中常见的错误可以参考下例:
从WORD 到 REAL:“DWORD_TO_REAL(WORD_TO_DWORD(value))”(错误程序)。
如果执行了这一转换,会得到错误的结果。原因:DINT_TO_REAL 函数将把源数据转换并按照 IEEE REAL 的格式存储到目的变量,而DWORD_TO_REAL 仅仅是从源数据拷贝位串至目的变量。因此,为了获得正确的“REAL”数,必须总是通过中间步骤“DWORD_TO_DINT”和“DINT_TO_REAL”实现。
13)在 S7-SCL 中如何区分某个变量名是本地变量,还是符号名?
解答:S7-SCL 中本地变量与符号名的引用有如下区别:
• 如果引用中只有变量名,则此变量为本地变量,如:Motor_Status:= Motor_1;
• 如果引用中变量名称上包括“”,则此变量为符号名,如:Motor_Status:= “Motor_1”。
14)如何访问一个字符串中的单个字符?
解答:对于字符串中的单个字符,使用如下的访问格式,是错误的:
MB10 := str[5] 这样的表达式无法实现将字符串的第 5 个字符送至 MB10 中。
方法:可以使用 IEC 函数 MID 来得到字符串的某个部分,例子如下:
VAR
str : STRING[20];
END_VAR
MB10:=CHAR_TO_BYTE(STRING_TO_CHAR(MID(IN:=str,L:=1,P:=5)));
15)如何加密我的 S7-SCL 程序?
解答:S7-SCL 程序加密与 STL 程序加密方法几乎一样,用户可以在程序中加入关键字:
KNOW_HOW_PROTECT,再进行编译即可,下图中的 FC1 在编译后,即出现了加锁保护的图标 。
注意:提供给最终用户的项目中应当删除 S7-SCL 源代码,否则用户在双击加密的块后(例如下图中的 FC1),依然可以关联打开 S7-SCL 源代码。
注意:提供给最终用户的项目中如果删除 S7-SCL 源代码,用户将只能看到 STL 格式的程序,稍微复杂些的 S7-SCL 程序在 STL 格式下几乎是无法阅读的。此方法类似于加密的效果。
16)如何对 S7-SCL 程序中的数据块及静态变量初始化?
解答:S7-SCL 程序中对数据块及静态变量初始化和 STL 语言格式类似,下面的程序列出了正确格式:
DAT1 : REAL := 100.5;
A1 : INT := 10 ;
A2 : STRING[6] := 'FACTOR';
A3 : ARRAY[1..12] OF REAL := 0.0, 10(100.0), 1.0;
小贴士
今天小编就给大家分享一部电气软件的“葵花宝典” 。这市面上少有,整理汇总齐全且免费下载,且针对电气从业者,量身归类梳理的,兼具实用与专业技术为一身。电工必备软件(电脑版+手机APP) ,供大家下载收藏,一起来看看!
★如何领取?★
①点击技成PLC课堂主页点击“关注 ”
②选择“免费资料 ”即可,喜欢请多多点赞分享!
相关问答
BATT是什么指示灯?PLC的問題。-ZOL问答
BATT是什么指示灯?PLC的問題。举报9人讨论1.3w次围观关注问题写回答讨论回答(9)gu1011BATT是PLC内置电池的指示灯,如果此指示灯亮说明电池电量将要耗尽...
ddvit指令讲解?
ddvit指令是一种常用的数据复制工具,可以用于将一个磁盘的数据复制到另一个磁盘上。其主要原理是以扇区为单位,直接对磁盘进行读写操作,因此速度比较快。使用d...
DD马达与传统的马达有什么区别?
[回答]刚性高,结构紧凑,效i率高。电机非常刚性,当结合负载时,特性也很硬。DD马达驱动器是一种数字电子产品,在实际应用中可以方便地与PLC等控制器连接。d...
微型dd马达与传统的马达有什么区别?
[回答]在洗衣机行业,dd马达能很全i面地改善洗衣机的性能,进一步提高工作效率,dd马达的电脑CPU、汽车发动机等新型洗衣机直接决定着洗衣机的性能、耐久性和...
【可编程控制器的定义的内容?】作业帮
[最佳回答]可编程控制器简称PC(ProgrammableController),它经历了可编程序矩阵控制器PMC、可编程序顺序控制器PSC、可编程序逻辑控制器PLC(ProgrammableLogi...
触摸屏上面的按钮信号在PLC中编程用的是PLC里面的辅助继电器...
[最佳回答]不是,HMI的按钮信号一般使用PLC里的内部变量,而并非辅助继电器。比如启动一台电机,按HMI上的启动按钮,那么这个按钮连接的中间变量如M0.0就会为1,...
...设计、传送带分拣物料的PLC控制系统设计.不要机器翻!_作业帮
[最佳回答]DesignofDigitalControlWorkbenchandItsControlSystem,DesignofPLCControlSystemforConveyor...
PLC可编程控制器软件
[最佳回答]PLC可编程控制器软件:在工业生产过程中,大量的开关量顺序控制,它按照逻辑条件进行顺序动作,并按照逻辑关系进行连锁保护动作的控制,及大量离散量的...
三菱A171SHCPUN广州plc三菱fx1n40mr什么意思
[回答]产品品牌:三菱产品名称:CPU单元产品型号:A171SHCPUNPLCCPU:A2SHCPU相同。PLC程序容量:14k步。I/O点数:512点。处理速度(顺序命令):0.25μs/步。控...
西门子PLC编程实例与Wincc组态教程免费下载?
[最佳回答]这个不太好弄,但是如果你是初学的话不建议直接读别人的程序,,说实话,直接读别人的程序有点打击积极性至于简单的例题,西门子编程手册后面就有.特...