西门子S7-200/300/400plc的四则运算指令基本相同,主要是对两个操作数的加、减、乘、除运算,操作数可以是整数、双整数、浮点数等。S7-200与S7-300/400的指令格式相似,梯形图程序格式如图10-7.1所示。
图中的IN1为四则运算中的被加数、被减数、被乘数、被除数;IN2为加数、减数、乘数、除数:OUT为运算结果存储器地址。
从图10-7.1可见,尽管S7-200与S7-300/400的梯形图指令相同,但从转换后的指令表可以看出两者在执行过程中存在差异。
S7-200的执行过程如下:
①将操作数l(被加数、被减数、被乘数、被除数)移动到结果存储器;
②将结果存储器(操作数1)与操作数2(加数、减数、乘数、除数)进行运算,并将运算结果存储到结果存储器中。
S7-300/400的执行过程如下:
①将操作数l(被加数、被减数、被乘数、被除数)读入到累加器l中:
②将操作数2(加数、减数、乘数、除数)读入到累加器1中,原累加器1中的操作数l移动到累加器2中:
③累加器2中的内容与累加器l运算,运算结果存储在累加器l中;
④累加器1的运算结果传送到结果存储器中。
四则运算编程时应注意以下几点:
①在S7-200中,整数、双整数的运算结果仍然为整数与双整数,因此,在程序中应注意防止因运算结果溢出而导致的执行错误。
②在S7-200中整数、双整数的除法运算DIV—I、DIV- DI指令,以及S7-300/400的DIV_ DI指令,除法运算的结果不保留余数。
③对于S7-200的整数除法,如果需要余数,可以使用DIV指令。DIV指令要求的输出存储器OUT为32位,执行DIV指令后,两个整数的除法运算可以得到32位运算结果,输出存储器OUT的高16位用于存储余数,低16位用于存储商。
④S7-200的双整数除法无法保留余数。
⑤对于S7-300/400的整数除法,可以自动生成余数,执行DIV I指令后,累加器l的高16位存储余数,低16位存储商。
⑥对于S7-300/400的双整数除法,如果需要余数,可以在利用DIV DI指令求出商后,再使用MOD指令求余数。执行MOD指令后,商被舍去,累加器l存储余数。
⑦除法运算的除数不能为“O”。
2.浮点数的函数运算
在S7-200/300/400中,浮点数可以进行函数运算。函数运算包括正弦、余弦、正切、平方根、自然对数、指数等运算,在S7-300/400中还可以进行平方、反正弦、反余弦、反正切、求**值等运算。
对于浮点数的函数运算,为了得到正确的运算结果,同样应遵守函数运算的基本规定与要求,保证程序中操作数取值范围的正确性。
3.增量指令
在S7-200中,除可以使用以上数据运算指令外,还可以通过专门的指令对字节、字、双字进行增“1”( Increment)与减“1”(Decrement)运算。这些指令的使用十分简单,可以按照表10-7.1的格式直接编程。
除以上常用的功能指令外,S7还有其他部分功能指令,如程序控制指令,S7-200中的表指令、字符串指令、特殊计数指令等。这些指令有的使用较少。
对带有集成EPROM的CPU,可以将装载内存的内容复制到集成EPROM中,以确保在没有后备电池的情况下发生电源故障或存储器复位时数据不丢失。 1. 将CPU设置为STOP模式。 2. 通过“View > Online”来打开已打开的项目的在线窗口。 3. 在项目窗口的在线视图中,选择S7或M7程序或在“Contactable stations”窗口中选择站。 4. 选择菜单命令“PLC > Copy RAM to ROM”。 5. RAM内存中的内容就被复制到集成EPROM中。 对以下CPU有效 CPU类型 订货号CPU 312 IFM6ES7 312-5ACxx-0AB0CPU 314 IFM6ES7 314-5AExx-0AB0C7-6216ES7 621-1AD0x-0AE3C7-621 ASI6ES7 621-6BD0x-0AE3C7-623/P6ES7 623-1DE0x-0AE3C7-624/P6ES7 624-1DE0x-0AE3C7-6246ES7 624-1AE0x-0AE3C7-626/P6ES7 626-1DG0x-0AE3C7-626/P DP6ES7 626-2DG0x-0AE3 表1:带集成EPROM的CPU模块 对带有存储卡的CPU模块,可以复制装载内存的内容到存储卡以确保在电源故障或内存复位时不丢失数据。 复制内容到MC的步骤与复制到集成EPROM的步骤相同。对以下CPU有效: CPU类型 订货号CPU 3136ES7 313-1AD01-0AB0CPU 3146ES7 314-1AE02-0AB0CPU 314 IFM6ES7 314-5AE10-0AB0CPU 3156ES7 315-1AF01-0AB0CPU 315-2DP6ES7 315-2AF01-0AB0CPU 316-2DP6ES7 316-2AG00-0AB0C7-633/P6ES7 633-1DF0x-0AE3C7-633 DP6ES7 633-2BF0x-0AE3C7-634/P6ES7 634-1DF0x-0AE3C7-634 DP6ES7 634-2BF0x-0AE3 表2:带内存卡的CPU模块 对需要MMC卡的CPU,装载内存包含在MMC卡上,它的大小正好与MMC卡的大小相同。当程序存储到MMC卡上时就不会受电源故障和存储器复位的影响。 CPU类型 订货号CPU 3126ES7 312-1AD10-0AB0CPU 312C6ES7 312-5BD0x-0AB0CPU 313C6ES7 313-5BE0x-0AB0CPU 313C-2PtP6ES7 313-6BE0x-0AB0CPU 313C-2DP6ES7 313-6CE0x-0AB0CPU 3146ES7 314-1AF1x-0AB0CPU 314C-2PtP6ES7 314-6BF0x-0AB0CPU 314C-2DP6ES7 314-6CF0x-0AB0CPU 315-2DP6ES7 315-2AG10-0AB0CPU 315-2 PN/DP6ES7315-2EG10-0AB0CPU 315F-2DP6ES7 315-6FF0x-0AB0CPU 315T-2 DP6ES7315-6TG10-0AB0CPU 317-2DP6ES7317-2AJ10-0AB0CPU 317-2 PN/DP6ES7317-2EJ10-0AB0CPU 317F-2DP6ES7317-6TJ10-0AB0CPU 317T-2 DP6ES7317-6TJ10-0AB0C7-6136ES7 613-1CA0x-0AE3C7-635 Keys6ES7 635-2EC0x-0AE3C7-635 Touch6ES7 635-2EB0x-0AE3 表3:需要MMC卡的CPU模块 注意事项: |
以前在一个工程中碰到过这样一个问题,其中一个称重的数据在程序监控中显示为32767,但是当用万用表测量时电流却正常。线路的接线方式是这样的,西门子S7-300模拟量模块采用四线制4-20mA,信号取自称重显示控制器的电流输出,而称重显示控制器通过四入一出的补偿接线盒连接四个称重传感器,称重系统设备都是采用的中南电子产品,如下图:
后来在我的坚持下,厂家同意检查称重系统,我们先从称重控制显示器到补偿接线盒的线路查起,线路正常,然后再查四个称重传感器到补偿接线盒的线路,终于发现问题了,其中一个称重传感器的线路有短路现象,于是将这个传感器甩开,只用另外三个工作,模板故障消除。 虽然*后问题解决了,但是一直没弄明白模板是怎么越过称重控制显示器检测到的故障。 |
- 西门子PLC模块6ES7222-1HD22-0XA0 2023-10-26
- 西门子PLC模块6ES7222-1BD22-0XA0 2023-10-26
- 西门子PLC模块6ES7222-1HF22-0XA8 2023-10-26
- 西门子PLC模块6ES7222-1EF22-0XA0 2023-10-26
- 西门子PLC模块6ES7222-1BF22-0XA8 2023-10-26
- 西门子PLC模块6ES7221-1EF22-0XA0 2023-10-26
- 西门子PLC模块6ES7221-1BF22-0XA8 2023-10-26
- 西门子PLC模块6ES7221-1BH22-0XA8 2023-10-26
- 西门子模块6GK7243-1GX00-0XE0 2023-10-26
- 西门子模块6GK7243-1EX01-0XE0 2023-10-26