PDA

Просмотр полной версии : Как покороче



жекон
30.01.2012, 13:37
Всем доброго дня!Осваиваю язык ST подскажите если не трудно как покороче написать следующее5489

Валенок
30.01.2012, 18:33
Вы это серьезно ?

жекон
30.01.2012, 19:00
Серьезно что?Ну не силен я в st, в cfc я напишу любую прогу дня за 2-3,а теперь потребовалось изучить ST.

capzap
30.01.2012, 19:48
лучше задачу описать чего хотите, а то вообще не понятно что именно в Вашем понятии сократить, к примеру
d:=(time_vod+time_kis+time_kau)<>0это можно считать сокращением :)

Валенок
30.01.2012, 19:54
/////////////////

жекон
30.01.2012, 20:00
Покороче что-бы убрать временные пер-ные a,b,c,d,e я попробовал компилятор не пропустил,просто надо разобраться с скобками и присвоениями."а" не обнуляеться а сравнивниваеться с 0.

capzap
30.01.2012, 20:25
d:=(time_vod+time_kis+time_kau)<>0;
out:=SEL(NOT (stop AND regim_pp AND regim_r), FALSE, pusk AND d); вроде компилятору ругаться не на что

жекон
31.01.2012, 13:59
Вроде разобралься уместил в одну строчку
SR1(SET1:=pusk AND NOT (time_vod+time_kis+time_kau = 0), RESET:=stop OR regim_pp OR regim_r , Q1=>work );все-ли правильно не знаю,но компилятор пропустил.

BETEP
31.01.2012, 18:24
Такие длинные условия плохо глазами читаются и совсем плохо комментируются, потом очень долго будете вспоминать что-же в этой строчке.

Вполне нормально создать несколько переменных разных типов для промежуточных результатов и использовать их по сто раз в программе.

читать потом удобнее, писать удобнее, при отладке можно заменить на другую переменную и увидеть промежуточный результат. размер проги меньше должен получиться хоть и текста вроде больше. ну и чем проще инструкция, тем быстрее она выполняется. В кодесисе я к сожалению не заметил в описаниях сколько стоит выполнение по времени той или иной инструкции в каком-то контроллере.

Вашу длинную строчку компилятор разложит на кучу простых инструкций. По моему ваш первый вариант более правильный, чем то что вы сочинили с целью "упростить"

capzap
31.01.2012, 18:43
по сути, времена выполнения инструкций можно взять и у сименса. Еще у сименса можно взять рекомендацию, как правильно заметил ВЕТЕР, использовать локальные переменные, вместо глобальных, обращение идет быстрее к объявленным переменным в ПОУ, чем к внешним переменным. Но все это касается крупных проектов, в простых это практически не заметно

жекон
31.01.2012, 21:30
Спасибо за советы,по поводу локальных переменных,в процессе работы я сам об этом задумался когда стали слишком длинные строки получаться просто не хотелось их плодить в таком количестве.