레시피

실행이 쓰는 설정값입니다. 시작할 때 적용하는 즉시 한 벌이거나, 계단과 램프와 유지로 이루어진 시간형 프로파일이며, 저마다 끝나는 실행이 쓰는 마무리 블록을 가집니다.

Markdown으로 보기

레시피는 모델에서 쓸 수 있는 채널에 씁니다. 즉시 레시피는 실행이 시작될 때 한 번 적용하는 설정값의 묶음이고, 시간형 레시피는 실행 자신의 시계로 몰아가는 계단과 램프와 유지 구간의 순서 있는 프로파일입니다. 둘 다 마무리 블록으로 끝날 수 있습니다. 실행이 끝날 때마다 쓰는 안전 상태입니다. 모든 쓰기는 기록으로 남는 하나뿐인 쓰기 통로를 타고, 실행 파일에 실행한 그대로 기록됩니다. 레시피는 Process > 모델 > 모델 > 셋업 > 레시피 아래에 살며 레시피와 판정 편집 권한이 필요합니다.

레시피 폴더

레시피 줄을 고르면 폴더 페이지가 열립니다("실행이 시작될 때 절차가 적용하는 설정값이며, 하나의 통로를 거쳐 쓰이고 실행한 그대로 기록됩니다."). 레시피마다 이름을 단 카드 하나이며, 카드를 누르면 열리고 가위표는 없앱니다. 하나도 없으면 페이지는 "아직 레시피가 없습니다. 하나 추가하십시오."라고 말합니다.

명령 하는 일 언제 흐려지는가(상황) 언제 그려지지 않는가(역할)
레시피(폴더를 고른 상태의 상세 막대, 오른쪽 클릭 레시피 추가) Recipe <n>을 더합니다. 즉시, 실패했을 때 일시 정지, 설정값 없음입니다. 그리고 그것을 고릅니다. 어느 유닛이든 실행을 지니고 있을 때, 또는 런타임이 정지했을 때. 레시피와 판정 편집이 없을 때.

레시피의 페이지

머리글은 이름과 "실행이 시작될 때 절차가 적용하는 설정값이며, 하나의 통로를 거쳐 쓰이고 실행한 그대로 기록됩니다."라는 줄과 종류를 담은 필을 답니다. 모든 항목이 자동으로 저장되고, 편집할 때마다 프로파일 미리 보기를 다시 그립니다.

정의

항목 무엇인가 값 / 기본값 효과
이름 트리에서, 절차의 레시피 고르개에서, 그리고 패널의 레시피 적용 고르개에서 이 레시피를 부르는 이름입니다. 자유 입력이며 만들 때는 Recipe <n>입니다. 그 줄의 이름을 바꿉니다.
종류 레시피의 꼴입니다. 즉시(기본값): 시작할 때 한 번 적용하는 설정값의 묶음입니다. 시간형: 자기 시계로 도는, 순서 있는 계단 / 램프 / 유지 프로파일입니다. 아래의 두 꼴 사이로 페이지를 바꿉니다. 이미 입력한 설정값과 구간은 그대로 남고, 지금 종류가 읽는 꼴만 그려집니다. 남아 있는 블록은 적용되지도 잡히지도 않습니다. 실행은 지금 힘을 가진 종류가 쓰는 것만 쓰고 잠급니다. 절차는 자기 방식에 맞는 종류의 레시피만 받아들입니다.
실패했을 때(시간형에만) 쓰기가 실패하거나 필요한 값을 읽을 수 없을 때 프로파일이 무엇을 하는지입니다. 일시 정지(기본값), 계속, 중단입니다. 시간형 꼴 아래의 표를 보십시오. 레시피의 규칙이며, 구간마다 이것을 덮어쓸 수 있습니다.
비고 레시피를 읽는 사람을 위한 자유 입력입니다. 여러 줄이며 기본은 비어 있습니다. 그 밖에는 없습니다.

설정값과 목표는 글로 입력하고, 적용할 때 채널의 형식으로 해석되며 문화권에 좌우되지 않는 방식을 씁니다.

채널 형식 받아들이는 표기
Bool true, false, 1, 0
Integer 정수이며 .은 결코 구분 기호로 쓰지 않습니다
Real .을 소수 구분 기호로 쓰는 숫자입니다(12.5, 1e-3)
String 입력한 그대로의 아무 글입니다
DateTime 왕복할 수 있는 날짜와 시각입니다(2026-09-02T14:30:00+00:00)

채널의 형식에 맞지 않는 표기는 결코 쓰이지 않습니다. 그 쓰기는 실행 파일에 실패로 기록되고 실패 규칙이 다룹니다. 이 페이지의 모든 채널 줄 표는 같은 표의 다른 줄이 아직 가져가지 않은, 쓸 수 있는 채널만 줄로 내놓습니다. 그래서 채널은 한 묶음에 한 번, 한 구간에 한 번만 쓰입니다. 쓸 수 있는 채널을 모두 가져갔으면 줄을 더하는 단추가 "여기에서는 쓸 수 있는 모든 채널에 이미 설정값이 있습니다."(또는 "… 이 구간에서는 … 이미 목표가 있습니다.")와 함께 흐려지고, 쓸 수 있는 채널이 아예 없으면 "이 모델에는 아직 쓸 수 있는 채널이 없습니다."와 함께 흐려집니다.

즉시 레시피

서로 무관한 카드 둘이며, 저마다 머리에 설정값 단추를 달아 쓸 수 있는 첫 빈 채널에 값 0인 줄을 더합니다.

카드 무엇을 쓰는가
설정값(시작할 때 적용) 시작할 때, 실행이 아무것도 기록하기 전에 한 번 씁니다.
마무리(안전 상태) "실행이 끝날 때마다 씁니다. 완료, 정지, 중단 모두입니다."

두 표는 같은 열을 함께 씁니다.

무엇인가
채널 쓰이는 채널이며 Ch<number> · <name> 꼴입니다. 이 표에서 아직 가져가지 않은 쓰기 전용이나 읽기와 쓰기 역할의 채널입니다.
쓰이는 표기입니다. 위의 값을 보십시오.
줄의 조작 제거는 "설정값 삭제"라고 묻고 채널의 이름과 "레시피에서 그 설정값을 지웁니다."를 붙입니다.

시간형 레시피

시간형 꼴은 프로파일을 먼저 그리고, 그다음에 거기에서 고른 구간 옆에 구간을, 마지막에 마무리 블록을 놓습니다.

시간 프로파일

이 차트가 곧 레시피입니다. 구간이 목표로 삼는 숫자 채널마다 계열 하나이며 <name> [<unit>]으로 이름을 달고, 구간이 만들어 내는 조각 곡선으로 그려집니다(계단은 뛰어올랐다가 붙들고, 램프는 이어받은 값에서 기울어지며, 유지나 목표가 없는 구간은 붙듭니다). 가로축은 누적 시간이며 초 단위입니다. 숫자가 아닌 채널의 목표는 그려지지 않습니다. 차트는 모든 차트가 지니는 도구 모음을 달고 자기 창으로 열 수 있으며(차트 참고), 절차 페이지도 자기 적용 단계 아래에 같은 프로파일을 그립니다.

구간

목록의 머리는 구간이고, 그 구간 단추가 목표 없는 60000 ms짜리 계단을 더하고 그것을 고릅니다. 줄을 누르면 구간 목표 열에서 열립니다. 아무것도 고르지 않았으면 열은 "구간을 고르면 그 전체와 몰아가는 목표를 한자리에서 편집합니다."라고 말합니다.

무엇인가 값 / 기본값
종류 구간이 프로파일에 놓는 모양이며, 선택지마다 그 모양을 이름 옆에 답니다. 계단(기본값), 램프, 유지입니다.
지속 시간(ms) 다음으로 넘어가기 전에 레시피가 이 구간에 얼마나 머무는지입니다. 밀리초 수이며 만들 때는 60000입니다. 이 칸은 음수를 받지 않습니다. 입력은 거부되고, 칸 아래의 메모가 그것을 말하며, 이전 값이 돌아옵니다.
실패했을 때 여기에서 난 실패를 레시피의 규칙대로 다룰지, 이 구간 자신의 규칙으로 다룰지입니다. (레시피를 따름)(기본값), 일시 정지, 계속, 중단입니다.
목표 구간이 몰아가는 대상을 한 줄로 적습니다. <channel> = <value>, …입니다. 유지는 아무것도 몰아가지 않으므로 비어 있습니다. 읽기 전용이며 열에서 편집합니다.
줄의 조작 제거는 "구간 삭제"라고 묻고 Segment <n> · <Kind>와 "레시피에서 그 구간과 목표를 지웁니다."를 붙입니다.
구간 종류 하는 일
계단 구간이 시작할 때 자기 목표를 쓰고, 지속 시간 동안 머뭅니다(계단은 0 ms만 머물러도 됩니다).
램프 목표를 가진 채널마다 마지막으로 명령한 값(아직 아무것도 명령하지 않았으면 지금 값)에서 목표까지 지속 시간에 걸쳐 곧게 몰아갑니다. 램프는 채널을 두 읽은 값 사이로 몰아가므로, 목표 고르개는 숫자를 담는 채널만 내놓습니다. 텍스트 채널이나 날짜와 시각 채널은 고를 수 없는 채로 목록에 남아, 계단이라면 한 번만 쓴다고 알립니다.
유지 마지막으로 명령한 값을 지속 시간 동안 붙듭니다. 아무것도 쓰지 않고 목표도 지니지 않습니다.

머리가 Segment <n> · <Kind>인 열은 세 항목을 설명문과 함께 되풀이하고, 각각 아래에 지금 값의 효과를 적습니다.

항목 설명문 효과
종류 선택지마다 그 모양이 옆에 놓입니다.
지속 시간(ms) "레시피가 다음으로 넘어가기 전에 이 구간에 얼마나 머무는지입니다." "1분 30초 동안 돕니다."(0 이하이면 "시간이 전혀 없음").
실패했을 때 "여기에서 난 실패를 레시피가 말하는 대로 다룰지, 이 구간이 따로 요구하는 방식으로 다룰지입니다." "레시피를 따릅니다: 일시 정지." 또는 "이 구간은 레시피를 덮어씁니다: 중단."

그 아래의 목표는 구간의 목표를 담고, 열의 머리에 있는 목표 단추가 이 구간이 아직 몰아가지 않는 첫 쓰기 가능 채널에 0인 줄을 더합니다. 유지 구간에서는 표 대신 "유지 구간은 프로파일이 이미 도달한 값을 붙들 뿐, 스스로 몰아가는 목표가 없습니다."라는 줄이 놓이고 단추가 흐려지며 "유지 구간은 이미 도달한 값을 붙듭니다. 여기에서 목표를 몰아가려면 종류를 바꾸십시오."라고 말합니다. 앞선 종류에서 물려받아 유지 구간이 지니고 있는 목표는 저장된 채로 남고, 실행과 프로파일 미리 보기와 진행표 모두가 그것을 무시합니다.

무엇인가
채널 몰아가는 쓰기 가능 채널이며, 이 구간의 다른 목표가 가져가지 않은 채널만 내놓습니다.
목표 쓰이는 값(계단)이거나 도달하는 값(램프)입니다.
줄의 조작 제거는 "목표 삭제"라고 묻고 채널의 이름과 "구간에서 그 목표를 지웁니다."를 붙입니다.

실패했을 때

실패 규칙은 쓰기가 거부되거나 필요한 값을 읽을 수 없을 때 시간형 레시피에 적용됩니다.

규칙 실행이 무엇을 하는가
일시 정지 프로파일을 마지막 설정값에서 멈춰 두고 운전자의 재개나 중단을 기다립니다. 데이터로그는 계속 기록합니다.
계속 실패를 실행한 그대로 기록하고 계속 갑니다. 실패한 채널은 그 구간이 끝날 때까지 건너뜁니다.
중단 마무리 블록을 쓰고 실행을 중단으로 끝냅니다.

마무리(안전 상태)

즉시 레시피에 있는 것과 같은 카드이며, "실행이 끝날 때마다 씁니다. 완료, 정지, 중단 모두입니다."라는 줄과 자기 설정값 단추와 표를 가집니다.

레시피를 어디에서 쓰는가

화면 레시피로 무엇을 하는가
절차의 적용 단계 고르개가 모델의 모든 레시피를 내놓되, 절차의 방식에 종류가 맞지 않는 레시피는 "<name>(맞지 않음)"으로, 잠긴 채로, 이유를 도구 설명에 달고 나열됩니다. 즉시나 수동 제어 절차는 즉시 레시피를 받거나 아무것도 받지 않고, 시간형 절차는 시간형 레시피를 받거나 아무것도 받지 않으며 그 프로파일이 시간 구간 안에 들어가야 합니다. 단계 줄은 그 선택이 무엇을 쓰는지 말합니다. "시작할 때 설정값 4개를 씁니다.", "시작할 때 설정값 4개를, 나가는 길에 설정값 2개를 씁니다.", "2분 30초에 걸쳐 구간 3개를 몰아가고 나가는 길에 설정값 2개를 씁니다.", 또는 "설정값을 쓰지 않습니다."입니다. 절차를 보십시오.
패널의 단일 명령 카드 레시피 적용은 즉시 레시피의 설정값을 실행 밖에서, 기록으로 남는 통로를 거쳐, 잠깐 걸리는 잠금 아래에서 한 번 씁니다. 실행 파일은 만들어지지 않고 기록부가 그 기록입니다. 즉시 레시피만 내놓습니다. 패널을 보십시오.

실행이 그것으로 하는 일

시작할 때 실행은 레시피가 쓰는 모든 신호원을 자기가 도는 내내 차지합니다. 그래서 다른 실행이 지니고 있는 신호원에 쓰는 레시피의 시작은 이름을 대며 거부되고, 실행이 그 신호원을 차지한 동안에는 바깥에서 오는 모든 쓰기(대시보드 입력란, 스크립트, OPC UA 클라이언트)가 거부됩니다. 즉시 묶음은 시작할 때 한 번 쓰이고, 시간형 프로파일은 실행의 시계로 구간을 하나씩 지나갑니다. 레시피가 없는 시간형 절차도 그 시계를 받으므로, 시간 구간의 모든 구성원이 함께 시작하고 되풀이하고 끝납니다. 일시 정지는 시계를 멈추고 재개는 다시 풀며, 일시 정지 동안에도 데이터로그는 계속 기록합니다. 모든 쓰기는 실행을 신호원으로 삼아 기록에 남고 실행 파일에 실행한 그대로 기록되므로, 나중에 읽는 사람은 실제로 무엇이 언제 쓰였는지를 봅니다.

마무리 블록은 실행이 끝날 때마다 쓰입니다. 완료, 정지, 중단 모두입니다. 실행 도중에 애플리케이션 자체를 닫을 때는 쓰이지 않습니다. 실행이 끝나는 것이 아니며, 다음에 켤 때 저장된 구간과 사이클에서 일시 정지된 채로 이어집니다.

레시피 제거

레시피 제거는 레시피를 고른 상태의 상세 막대 위험 묶음, 그 오른쪽 클릭 메뉴, 그리고 폴더 페이지 카드의 가위표에 섭니다. 먼저 묻습니다("레시피 삭제", "모델에서 레시피를 지웁니다."). 그것을 적용하던 모든 절차는 자기 레시피 참조를 비우고 레시피 없는 실행이 됩니다. 레시피와 판정 편집이 필요하며 엔지니어링 잠금과 정지한 런타임 아래에서는 흐려집니다.

레시피가 하지 않는 것

  • 아무것도 읽지 않고 아무것도 판정하지 않습니다. 한계는 판정입니다.
  • 유닛마다 다른 값을 쓰지 않습니다. 모든 유닛이 자기 이어 둔 신호원 위에서 같은 표기를 받습니다.
  • 거부된 쓰기를 결코 다시 시도하지 않습니다. 실패 규칙이 답의 전부입니다.
  • 시간형 레시피는 단일 명령으로 쏠 수 없습니다. 프로파일을 도는 것은 절차뿐입니다.
  • 프로파일 미리 보기는 숫자 채널만 그립니다. Bool이나 String 목표는 쓰이되 결코 그려지지 않습니다.