Fwd: [G2G] 自我息怒的心理技巧

本文介绍了五种有效的自我息怒技巧,帮助人们在面对工作和生活中的冲突时保持冷静,包括平心静气、闭口倾听、转移注意、交换角色和理性升化。
在工作和生活中,人们难免有冲突。在许多情况下,如不自控,冲突愈演愈烈会影响工作和伤害感情。因此,掌握一些自我息怒的心理技巧,对每个人,尤其是青年人,都是十分有益的。

在工作和生活中,人们难免有冲突。在许多情况下,如不自控,冲突愈演愈烈会影响工作和伤害感情。因此,掌握一些自我息怒的心理技巧,对每个人,尤其是青年人,都是十分有益的。本文列举五法:

  1、平心静气。美国经营心理学家欧廉・尤里斯教授,提出了能使人平心静气的三法则:"首先降低声音;继而放慢语速;最后胸部向前挺直。"降低声音,因为声音对自身的感情将产生催化作用,从而使已经冲动起来的表现更为强烈,造成不应有的后果;放慢语速,因为个人感情一旦掺入,语速就会随之变快,带来与说话声音高,容易引起冲动;胸部向挺直,因为情绪激动、语调激烈的人通常都是胸前倾,一旦胸部挺直,就会淡化冲动紧张的气氛,而当身体前倾时,就会使自己的脸接近对方,这种讲话姿态将人为地造成紧张局面,这样会更增加怒气。这三点是颇有见地的经验之谈。

  2、闭口倾听。英国著名的政治家、历史学家帕金森和英国知名的管理学家拉斯托姆吉,在合著的《知人善任》一书中谈到:"如果发生了争吵,切记、免开尊口。先听听别人的,让别人把话说完。要尽量做到虚心诚恳,通情达理。靠争吵绝对难以赢得人心,立竿见影的办法是彼此交心,这在吵架中绝对得不到。"愤怒情绪发生的特点在于短暂,"气头"过后,矛盾就较为容易解决。当别人的想法你不能苟同,而一时又觉得自己很难说服对方时,闭口倾听,会使对方意识到,听话的人对他的观点感兴趣,这样不仅压住了自己"气头",同时有利于削弱和避开对方的"气头"。"风平而后浪静,浪静而后水清,水清而后游鱼可数",待"风平浪静"后,再来论理,可以避免双方大伤感情,往往能收到理想的结果。

  3、转移注意。传说春秋时期有个蓝田侯叫王述,性格本来十分暴烈。针对这个弱点,他在与人相处时就很注意自控,轻易不为旁人所激怒。有一次,谢无奕气势汹汹地骂上门来,大吵大闹,当着王述的部下说了很多难听的话。王述始终强压性子,默默面壁而立,一声不吭,直到谢无奕离去很久,他才回头问部下"他走了吗?"部下回答:"走了好一大会儿。"他长吁一口气,转过身来,继续办自己的事情。王述这种方法是强迫自己在不离开现场的情况下,转移自己的注意力以免听对方激烈言辞,防止自己被进一步"激化"。心理学知识告诉我们:人在愤怒时,往往在大脑皮层中出现强烈的兴奋点,以致造成一时间的"意识狭窄"现象,而且这种有害的兴奋会进一步扩散升级,甚至造成激烈冲突的不堪设想的后果。转移注意的作用是理智地转移兴奋点,主动降温,防止冲突的恶化。

  4、交换角色。卡内基・梅伦大学的商学教授罗伯特・凯利,在加利福尼亚州某电脑公司遇到一位程序设计员和他上司就某一个软件的价值问题发生争执时,建设他们互相站在对方的立场来争辩,结果五分钟后,双方便认清了彼此的表现多么可笑,大家都笑了起来,很快找出了解决办法。在人与人之间的意见沟通过程中,心理因素起着重要的作用,人们都希望只有自己是对的,对方必须接受自己的意见才行。然而,由于人们在组织内和生活中所处的角色不同,在处理问题时,往往由于考虑的角度和立场不同而意见各一。如果双方都坚持已见而不能理智地考虑对方意见时,很容易引起冲突。如果双方在意见交流时,能够交换角色而设身处地的想一想,就会在比较中了解彼此的动机和目的,就会意识到自己的意见是否正确,是否应该被对方接受,就能避免双方大动肝火。

  5、理性升化。电视剧《继母》中,当年轻的继母看到孩子有意与她为难而恶作剧时,一时气愤难忍,摔碎了玻璃杯。但她马上意识到了进一步冲突的恶果,想到了当妈妈的责任和应有的理智,便顿然消除了怒气,扫掉玻璃渣片并主动向孩子道歉,和解了关系。当冲突发生时,在内心估计一个后果,想一下自己的责任,将自己升华到是一个有理智、有豁达气度的人,就一定能控制住自己的心境,缓解紧张的气氛。"忍得一时气,免得百日忧",合理的让步不仅对事情有大有益处,也会赢得别人的爱戴,退后一步,天地自宽。



<think> 根据您提供的代码片段,我发现输出绑定的语法有错误。在IEC 61131-3标准中,赋值操作符是`:=`,而不是`=>`。此外,输出绑定应该放在功能块调用之后,并确保使用正确的赋值操作符。 ## 错误分析 在您的代码中: ```iecst MotorA_Fwd => ConvA.MotorFwd; // 错误:使用了 '=>' 而不是 ':=' MotorA_Rev := ConvA.MotorRev; ``` 这里有两个问题: 1. 第一行使用了 `=>` 操作符,这是错误的。在ST(结构化文本)中,赋值操作符只有 `:=`。 2. 虽然第二行使用了正确的 `:=`,但整个绑定部分的写法不一致。 ## 正确代码 应该将输出绑定统一使用 `:=` 操作符: ```iecst // 辊道电机输出绑定 MotorA_Fwd := ConvA.MotorFwd; MotorA_Rev := ConvA.MotorRev; MotorB_Fwd := ConvB.MotorFwd; MotorB_Rev := ConvB.MotorRev; MotorC_Fwd := ConvC.MotorFwd; MotorC_Rev := ConvC.MotorRev; MotorD_Fwd := ConvD.MotorFwd; MotorD_Rev := ConvD.MotorRev; ``` ## 完整的主程序结构示例 ```iecst PROGRAM PLC_PRG VAR // 输入变量声明(例如传感器、按钮等) ConvA_EntrySensor AT %I0.0 : BOOL; // ... 其他输入 // 输出变量声明(例如电机控制) MotorA_Fwd AT %Q0.0 : BOOL; MotorA_Rev AT %Q0.1 : BOOL; // ... 其他输出 // 功能块实例 ConvA : ConveyorFB; // 假设ConveyorFB是辊道控制功能块 // ... 其他功能块实例 END_VAR // 功能块调用(配置) ConvA( EntrySensor := ConvA_EntrySensor, // ... 其他参数 ); // 其他辊道配置 ConvB(...); ConvC(...); ConvD(...); // 输出绑定 MotorA_Fwd := ConvA.MotorFwd; MotorA_Rev := ConvA.MotorRev; MotorB_Fwd := ConvB.MotorFwd; MotorB_Rev := ConvB.MotorRev; MotorC_Fwd := ConvC.MotorFwd; MotorC_Rev := ConvC.MotorRev; MotorD_Fwd := ConvD.MotorFwd; MotorD_Rev := ConvD.MotorRev; // 其他逻辑(如顶升机控制、路径控制等) END_PROGRAM ``` ## 常见错误及避免方法 1. **操作符错误**: - 正确赋值操作符:`:=` - 错误操作符:`=>`, `=`, `==` 2. **执行顺序错误**: - 必须在功能块调用**之后**再绑定输出 - 因为功能块输出在调用后才会更新 3. **变量作用域问题**: - 确保输出变量已声明(通常在VAR_OUTPUT或全局变量中) - 检查变量名拼写(区分大小写) 4. **类型不匹配**: - 确保功能块输出和绑定变量类型一致(都是BOOL) ## 高级建议:使用别名简化绑定 如果您的PLC支持,可以使用别名直接绑定功能块输出到物理输出点,避免中间变量: ```iecst VAR_OUTPUT MotorA_Fwd AT %Q0.0 : BOOL := ConvA.MotorFwd; // 初始化时绑定 END_VAR ``` 但这种方法在运行时不能改变绑定关系。通常,我们更推荐使用显式赋值(`:=`)方式,因为它更灵活。 ## 调试技巧 1. **添加临时监控点**: ```iecst // 调试用临时变量 tempConvA_MotorFwd : BOOL; ``` 然后监控这个变量: ```iecst tempConvA_MotorFwd := ConvA.MotorFwd; ``` 2. **使用断言**: ```iecst IF MotorA_Fwd <> ConvA.MotorFwd THEN // 触发报警或记录错误 END_IF; ``` ## §§相关问题§§: 1. 在PLC编程中,如何正确使用赋值操作符`:=`与比较操作符`=`? 2. 功能块输出绑定时,如何避免扫描周期带来的延迟影响? 3. 在大型系统中,如何管理多个功能块的输出绑定以避免冲突? 4. 如果需要在运行过程中动态改变输出绑定目标,应如何设计程序结构? </think>我注意到您的输出绑定代码存在语法错误,导致程序报错。主要问题是使用了不正确的操作符(`=>`)和格式不一致。以下是详细分析和修正方案: ## 错误分析 1. **错误的操作符**:在PLC编程中(特别是结构化文本),赋值操作符是 `:=`,而不是 `=>`。您的代码中第一行使用了 `=>`: ```iecst MotorA_Fwd => ConvA.MotorFwd; // 错误:应为 := ``` 2. **格式不一致**:代码中混用了空格和制表符,导致缩进不整齐: ```iecst MotorA_Fwd => ConvA.MotorFwd; // 错误操作符 MotorA_Rev := ConvA.MotorRev; // 缩进不一致 MotorB_Fwd := ConvB.MotorFwd; // 缺少缩进 ``` 3. **缺少分号**:最后一行缺少结束分号: ```iecst MotorD_Rev := ConvD.MotorRev // 缺少分号 ``` ## 正确修正的代码 ```iecst // ********************* 辊道电机输出绑定 ********************* MotorA_Fwd := ConvA.MotorFwd; MotorA_Rev := ConvA.MotorRev; MotorB_Fwd := ConvB.MotorFwd; MotorB_Rev := ConvB.MotorRev; MotorC_Fwd := ConvC.MotorFwd; MotorC_Rev := ConvC.MotorRev; MotorD_Fwd := ConvD.MotorFwd; MotorD_Rev := ConvD.MotorRev; ``` ## 完整的主程序结构示例 ```iecst PROGRAM Main VAR // 输入变量声明 ConvA_EntrySensor AT %I0.0 : BOOL; ConvA_ExitSensor AT %I0.1 : BOOL; HMI_ManualConvA_Fwd AT %I1.0 : BOOL; // ... 其他输入声明 // 输出变量声明 MotorA_Fwd AT %Q0.0 : BOOL; MotorA_Rev AT %Q0.1 : BOOL; // ... 其他输出声明 // 功能块实例 ConvA : ConveyorFB; ConvB : ConveyorFB; ConvC : ConveyorFB; ConvD : ConveyorFB; PathCtrl : PathControlFB; // 路径控制功能块 END_VAR // *************** 功能块配置 *************** // A辊道配置 ConvA( EntrySensor := ConvA_EntrySensor, ExitSensor := ConvA_ExitSensor, AutoFwd := PathCtrl.ConvA_AutoFwd, ManualFwd := HMI_ManualConvA_Fwd, ManualRev := HMI_ManualConvA_Rev, ManualStop := FALSE, StopDelay := T#5S, // 示例值 EmergencyStop := HMI_EmergencyStop, Reset := SystemReset ); // B、C、D辊道类似配置... ConvB(...); ConvC(...); ConvD(...); // 路径控制配置 PathCtrl(...); // *************** 输出绑定 *************** // 辊道电机输出绑定 MotorA_Fwd := ConvA.MotorFwd; MotorA_Rev := ConvA.MotorRev; MotorB_Fwd := ConvB.MotorFwd; MotorB_Rev := ConvB.MotorRev; MotorC_Fwd := ConvC.MotorFwd; MotorC_Rev := ConvC.MotorRev; MotorD_Fwd := ConvD.MotorFwd; MotorD_Rev := ConvD.MotorRev; // 顶升机输出绑定(根据之前的讨论) LiftL1_MotorRun := LiftL1.MotorRun; LiftL1_ConveyorFwd := LiftL1.ConveyorFwd; LiftL1_ConveyorRev := LiftL1.ConveyorRev; // 其他输出绑定... END_PROGRAM ``` ## 最佳实践建议 ### 1. 使用常量提高可维护性 ```iecst VAR CONSTANT DEFAULT_STOP_DELAY : TIME := T#5S; END_VAR // 在功能块调用中使用 ConvA( ... StopDelay := DEFAULT_STOP_DELAY, ... ); ``` ### 2. 添加安全互锁逻辑 ```iecst // 电机互锁:正转和反转不能同时激活 IF MotorA_Fwd AND MotorA_Rev THEN MotorA_Fwd := FALSE; MotorA_Rev := FALSE; // 记录故障 FaultLog := TRUE; FaultCode := 10#1; // 电机方向冲突 END_IF; ``` ### 3. 状态监控 ```iecst // HMI状态反馈 HMI_ConvA_Running := ConvA.MotorFwd OR ConvA.MotorRev; HMI_ConvA_Fault := ConvA.Fault; ``` ### 4. 输出绑定封装为函数 ```iecst METHOD BindOutputs : BOOL VAR_IN_OUT conv : ConveyorFB; motorFwd : BOOL; motorRev : BOOL; END_VAR motorFwd := conv.MotorFwd; motorRev := conv.MotorRev; // 返回绑定成功状态 BindOutputs := TRUE; ``` ## 调试技巧 1. **添加临时调试变量**: ```iecst // 调试用 Debug_ConvA_FwdState : BOOL; ``` 2. **在输出绑定前添加调试点**: ```iecst // 检查ConvA状态 Debug_ConvA_FwdState := ConvA.MotorFwd; // 然后再绑定 MotorA_Fwd := ConvA.MotorFwd; ``` 3. **使用交叉引用工具**: - 在PLC编程软件中使用交叉引用功能检查所有 `MotorA_Fwd` 的使用点 - 确保没有其他地方意外修改了这个变量 ##
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值