


价格:面议
0
联系人:
电话:
地址:
西门子模块6ES7214-1AD23-0XB8质保一年
英文助记符 德文助记符 程序元素分类 说明
---| |--- ---| |--- 位逻辑指令 常开接点(地址)
---|/|--- ---|/|--- 位逻辑指令 常闭接点(地址)
---( ) ---( ) 位逻辑指令 输出线圈
---()--- ---()--- 位逻辑指令 中间输出
==0 ---| |--- ==0 ---| |--- 状态位指令 结果位等于“0”<br/0 ---| |--- >0 ---| |--- 状态位指令 结果位大于“0”<br/=0 ---| |--- >=0 ---| |--- 状态位指令 结果位大于等于“0”
<=0 ---| |--- <=0 ---| |--- 状态位指令 结果位小于等于“0”
<0 ---| |--- <0 ---| |--- 状态位指令 结果位小于“0”
<>0 ---| |--- <>0 ---| |--- 状态位指令 结果位不等于“0”
ABS ABS 浮点算术运算指令浮点数绝对值运算
ACOS ACOS 浮点算术运算指令浮点数反余弦运算
ADD_DI ADD_DI 整数算术运算指令双整数加法 ADD_I ADD_I 整数算术运算指令整数加法
ADD_R ADD_R 浮点算术运算指令实数加法
ASIN ASIN 浮点算术运算指令浮点数反正弦运算
ATAN ATAN 浮点算术运算指令浮点数反正切运算
BCD_DI BCD_DI 转换指令 BCD 码转换为双整数
BCD_I BCD_I 转换指令 BCD 码转换为整数
BR ---| |--- BIE ---| |--- 状态位指令 异常位二进制结果
----(CALL) ----(CALL) 程序控制指令 从线圈调用 FC/SFC(无参数)
CALL_FB CALL_FB 程序控制指令 从方块调用 FB
CALL_FC CALL_FC 程序控制指令 从方块调用 FC
CALL_SFB CALL_SFB 程序控制指令 从方块调用 SFB
CALL_SFC CALL_SFC 程序控制指令 从方块调用 SFC
----(CD) ----(ZR) 计数器指令 减计数器线圈
CEIL CEIL 转换指令 上取整
CMP >=D CMP >=D 比较指令 双整数比较(==,<>,>,<,>=,<=)
CMP >=I CMP >=I 比较指令 整数比较(==,<>,>,<,>=,<=)
CMP >=R CMP >=R 比较指令 实数比较(==,<>,>,<,>=,<=)
浮点算术运算指令浮点数余弦运算
----(CU) ---( ZV ) 计数器指令 加计数器线圈
DI_BCD DI_BCD 转换指令 双整数转换为BCD 码
DI_R DI_R 转换指令 双整数转换为浮点数
DIV_DI DIV_DI 整数算术运算指令双整数除法
英文助记符 德文助记符 程序元素分类 说明
DIV_I DIV_I 整数算术运算指令整数除法
DIV_R DIV_R 浮点算术运算指令实数除法
EXP EXP 浮点算术运算指令浮点数指数运算
FLOOR FLOOR 转换指令 下取整
I_BCD I_BCD 转换指令 整数转换为BCD 码
I_DI I_DI 转换指令 整数转换为双整数
INV_I INV_I 转换指令 整数的二进制反码
INV_DI INV_DI 转换指令 双整数的二进制反码
---( JMP ) ---( JMP ) 跳转指令 无条件跳转
---( JMP ) ---( JMP ) 跳转指令 条件跳转
---( JMPN ) ---( JMPN ) 跳转指令 若非则跳转
LABEL LABEL 跳转指令 标号
LN LN 浮点算术运算指令浮点数自然对数运算
---(MCR>) ---(MCR>) 程序控制指令 主控继电器断开
---(MCR<) ---(MCR<) 程序控制指令 主控继电器接通
---(MCRA) ---(MCRA) 程序控制指令 主控继电器启动
---(MCRD) ---(MCRD) 程序控制指令 主控继电器停止
MOD_DI MOD_DI 整数算术运算指令回送余数的双整数
MOVE MOVE 赋值指令 赋值
MUL_DI MUL_DI 整数算术运算指令双整数乘法
MUL_I MUL_I 整数算术运算指令整数乘法
MUL_R MUL_R 浮点算术运算指令实数乘法
---(N)--- ---(N)--- 位逻辑指令 RLO 下降沿检测
NEG NEG 位逻辑指令 地址下降沿检测
NEG_DI NEG_DI 转换指令 双整数的二进制补码
NEG_I NEG_I 转换指令 整数的二进制补码
NEG_R NEG_R 转换指令 浮点数求反
---|NOT|--- ---|NOT|--- 位逻辑指令 信号流反向
---(OPN) ---(OPN) 数据块调用指令 打开数据块:DB 或 DI
OS ---| |--- OS ---| |--- 状态位指令 存储溢出异常位
OV ---| |--- OV ---| |--- 状态位指令 溢出异常位
---( P )--- ---( P )--- 位逻辑指令 RLO 上升沿检测
POS POS 位逻辑指令 地址上升沿检测
---( R ) ---( R ) 位逻辑指令 线圈复位
---( RET ) ---( RET ) 程序控制指令 返回
ROL_DW ROL_DW 移位和循环指令 双字左循环
ROL_DW ROL_DW 移位和循环指令 双字右循环
ROUND ROUND 转换指令 舍入为双整数
RS RS 位逻辑指令 复位置位触发器
---( S ) ---( S ) 位逻辑指令 线圈置位
---(SAVE) ---(SAVE) 位逻辑指令 将RLO 存入BR 存储器
---( SC ) ---( SZ ) 计数器指令 设置计数器值
S_CD Z_RUECK 计数器指令 减计数器
S_CU Z_VORW 计数器指令 加计数器
所有梯形逻辑指令一览
A-3
英文助记符 德文助记符 程序元素分类 说明
S_CUD ZAEHLER 计数器指令 加-减计数器
---( SD ) ---( SE ) 定时器指令 接通延时定时器线圈
---( SE ) ---( SV ) 定时器指令 扩展脉冲定时器线圈
---( SF ) ---( SA ) 定时器指令 断开延时定时器线圈
SHL_DW SHL_DW 移位和循环指令 双字左移
SHL_W SHL_W 移位和循环指令 字左移
SHR_DI SHR_DI 移位和循环指令 双整数右移
SHR_DW SHR_DW 移位和循环指令 双字右移
SHR_I SHR_I 移位和循环指令 整数右移
SHR_W SHR_W 移位和循环指令 字右移
SIN SIN 浮点算术运算指令浮点数正弦运算
S_ODT S_EVERZ 定时器指令 接通延时 S5 定时器
S_ODTS S_SEVERZ 定时器指令 保持型接通延时 S5 定时器
S_OFFDT S_AVERZ 定时器指令 断电延时 S5 定时器
---( SP ) ---( SI ) 定时器指令 脉冲定时器线圈
S_PEXT S_VIMP 定时器指令 扩展脉冲 S5 定时器
S_PULSE S_IMPULS 定时器指令 脉冲 S5 定时器
SQR SQR 浮点算术运算指令浮点数平方
SQRT SQRT 浮点算术运算指令浮点数平方根
SR SR 位逻辑指令 置位复位触发器
---( SS ) ---( SS ) 定时器指令 保持型接通延时定时器线圈
SUB_DI SUB_DI 整数算术运算指令双整数减法
SUB_I SUB_I 整数算术运算指令整数减法
SUB_R SUB_R 浮点算术运算指令实数减法
TAN TAN 浮点算术运算指令浮点数正切运算
TRUNC TRUNC 转换指令 舍去小数取整为双整数
UO ---| |--- UO ---| |--- 状态位指令 无序异常位
WAND_DW WAND_DW 字逻辑指令 双字和双字相“与”
WAND_W WAND_W 字逻辑指令 字和字相“与”
WOR_DW WOR_DW 字逻辑指令 双字和双字相“或”
WOR_W WOR_W 字逻辑指令 字和字相“或”
WXOR_DW WXOR_DW 字逻辑指令 双字和双字相“异或”
WXOR_W WXOR_W 字逻辑指令 字和字相“异或
、编程需要坚强的毅力和足够的耐心
人各有所长。有些人把编程看作一项冗长而枯燥的工作;有些人把编程看作一项趣味的智力游戏。如果你是前者,强烈建议你远离这份工作。毕竟编程工作是对人的毅力和耐心的挑战。我所在实验室中,很多学生看到我编程序就会惊讶于我面对这一堆堆符号所表现出的专注。其实,这是兴趣使然。兴趣使我具备了足够的毅力和耐心。经过无数次失败后,当看到一个个符号按我的思路整齐的排列,PLC按我的要求有条不紊的运行时,兴趣得到了极大的满足,如同打通了一个游戏的关口。所以,我告诉这些学生:你们看到的是一堆枯燥怪异的符号,我看到的却是一群热情奔放的舞者,而我则是她们的导演。
2、编程需要敢于实践的信心
我曾经教过一个学生学Auto,我对她的唯一要求就是实践。我告诉她:你随便怎么操作,大不了一张图重画;最坏的结果是系统崩溃,没关系,系统重做,再来;只要电脑没被砸了,怎么都行。两年后,我再看到她做的图纸,也自叹不如。
同样道理,只有不断地在PLC上运行这些指令,观察运行的结果,才能弄清PLC指令的作用。很多初学者对PLC一脸的迷茫,往往是出于一种畏惧,担心损坏设备。而这些畏惧是没有任何道理的。仔细的阅读手册是非常重要的,但是仅靠读书是成不了一个工程师的。更何况手册上的内容并非面面俱到。我在接触到那些不熟悉的指令时,喜欢单独编一个小程序,让PLC运行。然后逐个修改条件,观察运行的结果(MicroWin为用户提供了非常好的监控手段),反过来再重新理解手册的描述,这样就可以非常直观的理解这些指令的作用和使用方法。不必担心自己写的程序会有什么问题,会影响PLC的正常工作。程序有没有问题,只有让PLC运行了才能发现。而发现问题并解决问题就是对自己能力的提高。撇开硬件操作不谈,单就软件来说,我还真没有遇到过由于软件问题而损坏PLC的事。在这里不必担心继电器电路接错线可能造成的后果。所以,大胆的实践是PLC编程的必由之路。
当然,大胆实践并不是野蛮操作,而是必须遵循必要的规范。还有一个要注意的,在程序未经可靠性实之前,千万不要挂接负载,以免造成不必要的损失。数字量的输出有LED显示;而模拟量处理可以采用一些硬件或软件模拟手段来解决。
3、编程需要有缜密的逻辑思维
编程本身就是一种逻辑思维过程。在高级语言中,使用最多的是ifthenelse、select这些条件判别语句,这就是逻辑中的因果关系。PLC程序就是由这些因果关系组成的:判别条件是否成立,进而决定执行相应的指令。最初的PLC是用来替代继电器逻辑电路的,所以继承了继电器电路以触点作为触发条件的描述方式。在PLC中,以虚拟触点代替了继电器的金属触点,而继电器电路所表达的逻辑关系还是被完整的保留下来。即使引入了继电器电路难以胜任的数值处理过程,PLC从根本上还是在执行一个个因果关系。所以,理顺对象的各个事件之间的逻辑关系,是编程之前必须精心做好的准备工作。我在接到一项任务后,第一件事就是整理出一份逻辑关系图,与用户反复商讨,取得用户的认可,然后才真正进入程序的编写过程。
4、的相关知识
PLC的程序是直接作用于对象的具体工艺过程,那么对对象具体工艺过程的理解是非常重要的的。我在与用户的交流过程中,会用我所掌握的UnitOperation的知识分析用户的工艺过程,协助用户整理过程控制中的各个逻辑关系,甚至包括各种仪表、硬件的配置。这得益于我原本所学的专业。当然,不能要求所有搞PLC程序的工程师都有我这样的经历。但是有两门知识却是的:一是过程仪表的硬件知识,包括传感器、变送器(二次仪表)和PLC本身,这是构建控制系统的基础;二是过程控制理论,包括各种控制模型的原理和应用,其中最重要的是二位调节和PID调节模型。PID调节是目前用得最广泛的过程控制手段,且变化多端。学习PID最好的方法就是读书。几乎所有讲解过程控制的书籍都有关于PID的内容,多读基本相关的书籍对理解PID是很有益处的。我发现不少网友在进入PLC领域时,缺乏这些相关知识。这并不可怕;可怕的是当事者不能静下心来知识的缺陷。我们不要怪罪学校没有教授这些内容,而是要注重自己如何去学习这些知识。工作中遇到的许多问题是学校里没讲过的,这不能成为我们拒绝工作的理由,而应该以积极的态度去应对这些问题。我的体会是,为了解决工作中的问题而学习的知识,比课堂上学的东西更容易记住。
5、养成良好的编程习惯
每个人编程都会有不同的习惯和特点,不能强求一致。但是一些好的习惯还是应该为大多数人所遵循。一是理顺逻辑关系、时序关系,编制程序框图;二是合理分配主程序、子程序和中断程序;三是合理分配寄存器,编制寄存器符号表。
PLC编程更接近于单片机,或者说PLC就是模块化的单片机。因此PLC的很多操作都是直接针对寄存器的,如果在程序中出现不合理的寄存器重叠,一定会出现不可预想的后果。编制寄存器符号表不仅可以避免上述问题(MicroWin会有问题提示),而且可以使程序具备更好的可读性。这和VB中定义变量有异曲同工之处。
VB编程中关注的是事件,不强调主程序和子程序的观念,因为VB主程序的工作是由PC的操作系统完成的。PLC则不然。PLC程序是以主程序为主干的,CPU不断的循环执行主程序,只有触发条件成立时才会调用子程序或中断程序。即子程序和中断程序所执行的任务不是全时需要的。如果把这些任务都放在主程序中会无端增加主程序的工作量,降低程序的效率。这点和单片机的编程思路是一致的。子程序的使用可以使整个程序的逻辑更清晰。而且子程序可以分开编写、调试,最后“安装”到主程序上。这样你可以一个一个解决问题。
PLC编程,无论是LAD,抑或STL,都不如VB那么直观、有趣,更不如那么形象。但比单片机的汇编语言的可视性强多了。对于初学者,LAD(梯形图)的编程相对直观,更容易上手。
最后,PLC提供了丰富的指令、模块,比单片机方便了很多。但是初学者编程时应尽量先使用简单的指令达到目的。尽管看上去有点土,却不失为一个入门的好途径,且对你理解那些较为复杂的指令会有帮助。具备了一定经验后,应该考虑掌握复杂指令的应用,以及程序的优化。