변수
변수 편집기를 카드별로 봅니다. 신원과 주소, 수식 종류와 내부 값 종류, 출력 형식, 실시간 값 카드, 값 설정, 품질과 유지, 명령, 그리고 편집기가 거부하는 것.
변수는 스테이션이 계산하거나 보관하는 형식 있는 값 하나이며, Variables 아래에 자기 폴더 경로와 다듬은 이름으로 주소가 매겨집니다. Logic 열에서 변수 행을 고르면(또는 새로 만들기… > 새 변수로 만들거나 폴더에서 새 변수로 만들면) 그 편집기가 열립니다. 편집기는 읽는 데 Logic 보기, 어느 칸이든 바꾸는 데 Logic 구성, 내부 값을 쓰는 데 Logic 조작이 필요합니다.
패널 머리글은 행의 표시(수식 표시나 내부 값 표시)와 이름을, 그리고 종류마다 한 줄을 보여 줍니다. "이 스테이션이 주소 공간 위의 수식으로 계산하는 값이며, 로직 주기마다 다시 계산합니다." 또는 "이 스테이션이 보관하는 값입니다. 스크립트나 대시보드가, 또는 사용자가 직접 쓰며, 주소로 어디에서나 읽을 수 있습니다."입니다. 양식 열에는 식별 카드가 놓이고 그다음에 수식 편집기나 내부 값 카드가 놓입니다. 오른쪽 난간에는 값 카드가, 수식일 때는 참조하는 포인트 카드가 놓입니다.
식별
| 칸 | 무엇인가 | 값과 기본값 | 효과 |
|---|---|---|---|
| 이름 | 표시 이름입니다. 그것을 다듬은 마디가 주소의 마지막 단계가 됩니다. | 자유 입력. 새 변수는 VariableN입니다. |
아래의 안전한 이름 바꾸기로 확정됩니다. 빈 이름은 거부됩니다("이름이 필요합니다."). |
| 주소 줄 | 변수가 답하는 주소이며 이름 아래에 되풀이됩니다. 구역 뿌리, 폴더 단계, 마디입니다. | 읽기 전용. | 입력하는 대로 이름을 따릅니다. 폴더 부분은 트리의 이동 위치로만 바뀝니다. |
| 종류 | 값이 만들어지는 방식. | 수식(기본값) 또는 내부 값. | 내부 값으로 바꾸면 초기값에서 값을 다시 심고, 수식으로 바꾸면 다음 주기까지 값을 비워 둡니다. |
| 출력 형식 | 모든 결과와 쓰기가 맞추어지는 범주. | 부울, 정수, 실수(기본값), 텍스트, 날짜와 시간, 이미지, 아이콘, 색. | 이것을 바꾸면 내부 값 변수는 값을 다시 심고(유지 변수라면 심은 값을 저장합니다), 수식 변수는 비워 두며, 미리 보기는 새 형식으로 다시 풀립니다. |
| 단위 (선택) | 값 옆에 그리는 공학 단위. | 자유 입력이며 기본값은 비어 있습니다. | 값 카드에 나오고 스크립트에서 .EngineeringUnit으로 읽습니다. |
| 설명 (선택) | 자유 입력. | 기본값은 비어 있습니다. | 평가에는 아무 영향이 없습니다. |
이름과 주소
이름 칸은 이름 바꾸기 칸입니다. 입력하는 동안에는 그 자리에만 머물고, 잠깐 멈추면 칸 아래 줄이 그 영향을 미리 보여 줍니다("참조를 확인하는 중…", 그다음 "이름을 바꾸면 이 주소를 읽는 3곳이 함께 갱신됩니다.", "현재 주소를 사용하는 참조가 없습니다.", 또는 새 이름이 같은 마디로 다듬어질 때 "실제 주소는 바뀌지 않으므로 갱신할 참조가 없습니다."). Enter를 누르거나 칸을 벗어나면 확정됩니다. 확정은 변수의 이름을 바꾸고, 옛 주소를 쓰던 모든 수식과 스크립트와 조건과 대시보드 바인딩을 고쳐 쓰며, 실시간 값과 채널 바인딩을 그대로 지키고(채널은 변수의 변하지 않는 키로 묶이지 이름으로 묶이지 않습니다), "변수 이름을 바꿨고 참조 N곳을 갱신했습니다."라고 알립니다. 자기 단계에서 부딪히는 이름은 그 자리에서 거부됩니다. "'X'이(가) 이미 'Variables.X'(으)로 응답합니다. 한 폴더에 담긴 이름은 서로 다른 주소 구획이 되어야 합니다." 적는 규칙과 충돌 규칙은 주소 공간에 있습니다.
수식
종류가 수식인 동안 나옵니다. 찾아보기… 단추가 딸린 수식 편집기와 그 안내입니다. "주소 공간 위에 쓰는 JavaScript 수식 하나입니다(예: Connector.Simulated.Pump.Flow.ValueToReal() * 0.1, Variables.Setpoint.Value). 출력이 Image/Icon/Color이면 Assets.Images, Assets.Icons 또는 Assets.Colors 주소를 돌려주십시오(예: Variables.Level.Value > 50 ? Assets.Colors.Red : Assets.Colors.Green). 입력하면 자동 완성되고, 찾아보기…로 고를 수도 있습니다." 글자는 자판을 누를 때마다 저장되고 0.5초마다 검사됩니다. 문제가 있으면 값 카드에 나옵니다. 언어와 읽기 표면과 모든 규칙은 수식에 있습니다. 종류가 내부 값인 동안에도 수식 글자는 지켜지지만 무시됩니다.
내부 값
종류가 내부 값인 동안 나옵니다.
| 칸 | 무엇인가 | 값과 기본값 | 효과 |
|---|---|---|---|
| 초기값 | 심는 값이며 글자로 적습니다. 그 아래에는 "시작할 때 출력 형식에 맞추어 해석합니다. 값을 두지 않으려면 비워 두십시오."가 있습니다. | 아무 글자나. 기본값은 비어 있습니다. | 변수를 만들 때, 종류나 출력 형식을 바꿀 때, 그리고 유지가 아닌 변수를 시작할 때마다 출력 형식에 맞추어 해석합니다. 비어 있으면 값이 없다는 뜻이며 변수는 빈 값으로 시작합니다. 해석되지 않는 글자는 값 카드에 표시되고("초기값을 실수(으)로 해석하지 못했습니다.") 빈 값을 심습니다. |
| 유지: 마지막으로 쓴 값이 다시 시작해도 남습니다 | 쓴 값을 저장할지 여부. | 기본값은 꺼짐. | 유지 변수는 쓰기가 멈춘 뒤 약 1초 만에, 그리고 저장되지 않은 첫 쓰기로부터 늦어도 5초 안에 저장됩니다. 런타임을 정지하면 기다리던 것이 모두 기록됩니다. 다음 시작에서 유지된 글자를 지금의 출력 형식으로 해석하며, 더 이상 해석되지 않으면 초기값을 대신 씁니다. 유지가 아닌 변수는 부팅할 때 초기값으로 되돌아갑니다. |
값 설정
설정할 값 칸과 그 쓰기 단추는 Logic 조작을 가진 역할에게만 그려지고, 스테이션이 읽기 전용인 동안 "런타임 정지"와 함께 회색이 됩니다. 엔지니어링 잠금은 이것을 건드리지 않습니다. 값을 입력하고 쓰기를 누르면 글자가 출력 형식에 맞추어 해석됩니다. 해석되지 않는 글자는 거부되고("'abc'을(를) 정수(으)로 해석하지 못했습니다.") 아무것도 쓰이지 않습니다. 칸이 비어 있으면 값 없음을 쓰며, 그것은 변수를 다시 빈 값으로 되돌립니다. 이 쓰기는 하나의 깔때기를 탑니다. 도는 레시피나 인터록이 그 변수를 잡고 있으면 거부되고("'Variables.X'은(는) '<holder>'이(가) 쓰기를 막고 있습니다."), 출처 운전자 아래에 옛 값에서 새 값으로 기록되며, 로직 대기열에서 적용되고, 유지 변수라면 저장 대상으로 표시됩니다. 작업 기록 줄은 "값을 썼습니다."라고 말합니다. 이 칸은 읽기 표시가 아닙니다. 그것은 값 카드입니다.
출력 형식
| 출력 형식 | 담는 것 | 비고 |
|---|---|---|
| 부울 | true 또는 false | 채널로 기록하고 그릴 수 있습니다 |
| 정수 | 64비트 정수 | 기록하고 그릴 수 있습니다 |
| 실수 | 배정밀도 실수 | 기록하고 그릴 수 있습니다. 읽기 표시는 소수 두 자리를 보여 줍니다 |
| 텍스트 | 자유 입력 글자 | |
| 날짜와 시간 | 한 시점 | 스테이션의 날짜와 시간 형식으로 나옵니다 |
| 이미지 | 자산 id를 글자로 | 표시용 출력입니다. 수식이 Assets.Images.* 주소를 돌려줍니다 |
| 아이콘 | 글리프나 SVG 마크업을 글자로 | 표시용 출력입니다. Assets.Icons.* 주소를 돌려주십시오 |
| 색 | 16진수 색을 글자로 | 표시용 출력입니다. Assets.Colors.* 주소를 돌려주십시오 |
형식 맞추기는 애플리케이션의 다른 곳이 쓰는 것과 같은 너그러운 변환입니다. 글자는 해석되고, 숫자는 반올림되거나 변환되며, 변환할 수 없는 것은 값 없음이 됩니다. 표시용 형식의 내부 값 변수는 입력한 리터럴(자산 id, 글리프, 16진수)을 그대로 담습니다. 세 가지 표시용 출력은 대시보드를 위해 있습니다. 그곳에서 묶인 이미지나 아이콘이나 심볼 구성 요소가 그 변수가 지금 풀어내는 것을 그립니다. 그것들이 돌려주는 주소는 자산 아래에 나열되어 있습니다.
값 카드
값 난간은 현재 값을 1초에 두 번 새로 고쳐 보여 줍니다. 스칼라 형식에서는 단위를 옆에 붙인 읽기 표시를, 이미지에서는 그림을, 아이콘에서는 크기에 맞춘 글리프를, 색에서는 16진수를 붙인 색 견본을 보여 줍니다. 빈 값은 짧은 줄로 그립니다. 수식 변수에서는 카드가 지금 입력하고 있는 초안을, 주기가 그것을 집어 가기 전에 현재 값으로 평가해 미리 보여 줍니다. 수식이 올바르지 않은 동안 읽기 표시는 짧은 줄로 남고 검사 메시지가 카드에 나타납니다(이름 충돌도 여기에 알려지지만, 잘못된 이름이 미리 보기를 멈추지는 않습니다). 스칼라 읽기 표시 아래에서 카드는 "이 변수를 기록하려면 Process의 정의 > 채널에서 채널을 연결하십시오."라고 말합니다. 그 연결은 Process 모델의 채널 화면에서 만듭니다.
수식 변수에서는 참조하는 포인트 카드가 그 수식이 부르는 모든 주소를 지금 읽은 값과 함께 나열하고, 주소가 더 이상 풀리지 않으면 "?"를 보여 주므로 나쁜 입력이 한눈에 드러납니다.
품질
변수의 값은 형식 있는 값이거나 아예 값이 없는 것(빈 값) 둘 중 하나입니다. 포인트는 자기 값이 있을 때에만 정상입니다. 내부 값 변수는 값을 담게 되면 정상이 되고, 비어 있는 씨앗은 첫 실제 쓰기 전까지 빈 값입니다. 수식 변수는 마지막 평가의 품질을 지니므로, 참조하는 포인트 가운데 하나라도 없거나 나쁘거나 값이 없으면 수식은 평가되지 않고 변수는 품질이 나쁜 빈 값이 됩니다. 비어 있는 읽기가 조용히 0이 되는 일은 결코 없습니다. 스크립트는 그 품질을 .State()로 읽고, 그 변수에 묶인 채널은 빈 값을 빈 값 그대로 기록합니다.
명령
| 명령 | 하는 일 | 회색이 되는 때 | 그려지지 않는 때 |
|---|---|---|---|
| 복사 | 변수를 Variables 뿌리로 비어 있는 이름(이름 (2)…)으로 복제하고 복사본을 엽니다. 복사본은 새 키를 가지므로 아직 어떤 채널에도 묶여 있지 않습니다. |
스테이션이 잠겼거나 읽기 전용일 때. | 역할에 Logic 구성이 없을 때. |
| 변수 삭제 | "'X'을(를) 삭제하시겠습니까? 이 변수가 없어집니다. 그 주소에 대한 참조는 풀리지 않은 상태가 됩니다. 이 작업은 되돌릴 수 없습니다."라고 물은 다음, 유지된 값과 함께 지웁니다. | 스테이션이 잠겼거나 읽기 전용일 때. | 역할에 Logic 구성이 없을 때. |
| 이동 위치(오른쪽 단추) | 변수를 다른 폴더나 뿌리에 놓습니다. 주소와 모든 참조가 따라옵니다. | 스테이션이 잠겼거나 읽기 전용일 때. | 역할에 Logic 구성이 없을 때. |
변수에는 사용과 사용 안 함이 없습니다. 언제나 평가되거나 언제나 보관됩니다.
편집기가 거부하는 것
- 빈 이름, 또는 자기 단계에서 마디가 이미 쓰이고 있는 이름.
- 읽기 전용 JavaScript 수식 하나가 아닌 수식, 존재하지 않는 포인트나 다른 수식 변수를 참조하는 수식, 시험 평가에 실패하는 수식(정확한 메시지는 수식에 있습니다).
- 출력 형식으로 해석되지 않는 초기값이나 설정할 값, 그리고 NaN이거나 무한한 모든 값.
- 실행이 스테이션을 잠갔거나 스테이션이 정지된 동안의 모든 변경. 칸은 스테이션이 가진 값으로 되돌아가고 작업 기록 줄이 이유를 말합니다.
편집기가 하지 않는 일
편집기는 그리거나 기록하지 않고(그것은 채널이 합니다), 태그를 쓰지 않으며(내부 값을 더 멀리 가져가는 것은 스크립트나 대시보드 조작입니다), 다른 수식 변수를 참조하지 않고, 값의 이력을 남기지 않으며, 유지가 아닌 값을 다시 시작할 때까지 지키지 않습니다.